On 25/12/15 21:06, John Paul Adrian
Glaubitz wrote:
On 12/25/2015 09:51 PM, Bryce wrote:
eh wot?
I built silo as pure 64bit, but since you can't 'chainload' from
32bit
silo to 64bit silo...
I tried building 64-bit natively but that failed with:
gcc -Os -Wall -I. -I../include -fomit-frame-pointer
-fno-strict-aliasing
-DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector
-c
divdi3.S
divdi3.S: Assembler messages:
divdi3.S:105: Error: detected global register use not covered by
.register pseudo-op
For a start I'll refer you to http://docs.oracle.com/cd/E19620-01/805-6015/chap3-15/index.html
lesse,..
[root@ca-qasparc10 ~]# cd /tmp; export PKG=silo ;
rm -rf /tmp/$PKG ; svn co
http://ca-svn.us.oracle.com/svn/repos/rhel4/$PKG/branches-6/el6-u5-sparc64
$PKG ; cd /tmp/$PKG
[root@ca-qasparc10 silo]# bs
Wrote: /tmp/silo/silo-1.4.14-4.0.18.el6.src.rpm
[root@ca-qasparc10 silo]# rpmbuild --recompile
/tmp/silo/silo-1.4.14-4.0.18.el6.src.rpm
...
gcc -static -Os -Wall -I. -I../include -fomit-frame-pointer
-fno-strict-aliasing
-DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000
-fno-stack-protector -c ffs.c
gcc -static -Os -Wall -I. -I../include
-fomit-frame-pointer -fno-strict-aliasing
-DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000
-fno-stack-protector -c divdi3.S
gcc -static -Os -Wall -I. -I../include -fomit-frame-pointer
-fno-strict-aliasing -DSMALL_RELOC=0x280000
-DLARGE_RELOC=0x380000 -fno-stack-protector -c udivdi3.S
gcc -static -Os -Wall -I. -I../include -fomit-frame-pointer
-fno-strict-aliasing -DSMALL_RELOC=0x280000
-DLARGE_RELOC=0x380000 -fno-stack-protector bin2h.c -o
bin2h
make[1]: Leaving directory
`/root/rpmbuild/BUILD/silo-1.4.14/common'
make[1]: Entering directory
`/root/rpmbuild/BUILD/silo-1.4.14/first'
gcc -static -Os -Wall -I. -I../include -fomit-frame-pointer
-fno-strict-aliasing -DSMALL_RELOC=0x280000
-DLARGE_RELOC=0x380000 -fno-stack-protector -c first.S -o
first.o
ld -m elf64_sparc -N -Ttext 0x4000 -o first first.o
nm first | grep -v '*ABS*' | sort > first.map
strip first
elftoaout -o first.b first
...
Wrote:
/root/rpmbuild/RPMS/sparc64/silo-1.4.14-4.0.18.el6.sparc64.rpm
(Joy,.. still compiles 8) )
lets see your error message is about
divdi3.S around line 105...
I don't think we did any hacking in there, the only ref we have is
[root@ca-qasparc10 silo]# grep /divdi3.S *patch
silo-1.4.14-build-as-64bit.patch:diff -r -u
silo-1.4.14/common/divdi3.S silo-1.4.14-bias/common/divdi3.S
silo-1.4.14-build-as-64bit.patch:---
silo-1.4.14/common/divdi3.S 2012-12-06 04:09:00.000000000 +0100
silo-1.4.14-build-as-64bit.patch:+++
silo-1.4.14-bias/common/divdi3.S 2013-05-22 15:09:47.457000000
+0200
Assuming that your src looks the same, is this around where it went
wrong?
97 ! Got carry from n. Subtract next
step to cancel this carry.
98 bne 4b
99 addcc %o1,%o1,%o1 ! shift n1n0 and a 0-bit
in lsb
100 sub %i0,%o4,%i0
101 3: xnor %o1,0,%o1
102 b .LL50
103 mov 0,%o2
104 .LL46:
105 cmp %o4,0
106 bne .LL85
107 mov %i0,%o2
108 mov 1,%o0
109 call .udiv,0
110 mov 0,%o1
111 mov %o0,%o4
112 mov %i0,%o2
113 .LL85:
114 mov 0,%g3
115 mov 32,%g1
116 subcc %g3,%o4,%g0
117 1: bcs 5f
118 addxcc %o2,%o2,%o2 ! shift n1n0 and a q-bit
in lsb
119 sub %g3,%o4,%g3 ! this kills msb of n
|