[uClibc]Dynamic libuClibc.so woes

michaels at jungo.com michaels at jungo.com
Wed Mar 7 10:25:01 UTC 2001


Manuel,

What you're telling me is interesting. I don't get any further thn
before even with their patches etc. First, it doesn't compile on my CPU
with rpm :

-------------------------------------------------
[michaels at kobie michaels]$ rt rpm --rebuild --target i386
ld.so-1.9.5-13.src.rpm
Installing ld.so-1.9.5-13.src.rpm
Building target platforms: i386
Building for target i386
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.19947
+ umask 022
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf ld.so-1.9.5
+ /bin/gzip -dc /usr/src/RPM/SOURCES/ld.so-1.9.5.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd ld.so-1.9.5
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,g-w,o-w .
+ echo 'Patch #0 (ld.so-1.9.5-rpath.patch):'
Patch #0 (ld.so-1.9.5-rpath.patch):
+ patch -p1 -b --suffix .rpath -s
+ echo 'Patch #1 (ld.so-1.9.5-sparc-config.patch):'
Patch #1 (ld.so-1.9.5-sparc-config.patch):
+ patch -p1 -b --suffix .patch1 -s
+ echo 'Patch #2 (ld.so-1.9.5-sparc.patch):'
Patch #2 (ld.so-1.9.5-sparc.patch):
+ patch -p1 -b --suffix .patch2 -s
+ echo 'Patch #3 (ld.so-1.9.5-sparc2.patch):'
Patch #3 (ld.so-1.9.5-sparc2.patch):
+ patch -p1 -b --suffix .patch3 -s
+ echo 'Patch #4 (ld.so-1.9.5-sparc-membar.patch):'
Patch #4 (ld.so-1.9.5-sparc-membar.patch):
+ patch -p0 -b --suffix .patch4 -s
+ echo 'Patch #5 (ld.so-1.9.5-sparc-fprs.patch):'
Patch #5 (ld.so-1.9.5-sparc-fprs.patch):
+ patch -p0 -b --suffix .patch5 -s
+ echo 'Patch #6 (ld.so-1.9.5-sparc-conf32.patch):'
Patch #6 (ld.so-1.9.5-sparc-conf32.patch):
+ patch -p1 -b --suffix .patch6 -s
+ echo 'Patch #7 (ld.so-1.9.5-sparc-sun4msun4u.patch):'
Patch #7 (ld.so-1.9.5-sparc-sun4msun4u.patch):
+ patch -p0 -b --suffix .patch7 -s
+ echo 'Patch #8 (ld.so-1.9.5-sparc-gafton.patch):'
Patch #8 (ld.so-1.9.5-sparc-gafton.patch):
+ patch -p1 -b --suffix .patch8 -s
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.29868
+ umask 022
+ cd /usr/src/RPM/BUILD
+ cd ld.so-1.9.5
+ ARCH=i386
+ make -C d-link clean
make: Entering directory `/usr/src/RPM/BUILD/ld.so-1.9.5/d-link'
rm -f -f ld-linux.so core *.o *.a *.s *.i tmp_make foo *~
making clean in i386
make[1]: Entering directory `/usr/src/RPM/BUILD/ld.so-1.9.5/d-link/i386'
rm -f -f core *.o *.a *.s *.i tmp_make *~
make[1]: Leaving directory `/usr/src/RPM/BUILD/ld.so-1.9.5/d-link/i386'
making clean in libdl
make[1]: Entering directory
`/usr/src/RPM/BUILD/ld.so-1.9.5/d-link/libdl'
rm -f -f libdl.so core *.o *.a *.s *.i tmp_make foo *~
make[1]: Leaving directory `/usr/src/RPM/BUILD/ld.so-1.9.5/d-link/libdl'
make: Leaving directory `/usr/src/RPM/BUILD/ld.so-1.9.5/d-link'
+ ARCH=i386
+ make -C d-link
make: Entering directory `/usr/src/RPM/BUILD/ld.so-1.9.5/d-link'
gcc -Wall -O4 -g -DVERSION=\"1.9.5\" -D_GNU_SOURCE -I. -I./i386
-DNO_UNDERSCORE -DVERBOSE_DLINKER -DUSE_CACHE -fPIC -D__PIC__    -c -o
boot1.o boot1.c
In file included from /usr/include/linux/fcntl.h:4,
                 from boot1.c:97:
/usr/include/asm/fcntl.h:64: parse error before `off_t'
/usr/include/asm/fcntl.h:64: warning: no semicolon at end of struct or
union
/usr/include/asm/fcntl.h:65: warning: data definition has no type or
storage
class                                                                             
/usr/include/asm/fcntl.h:66: parse error before `l_pid'
/usr/include/asm/fcntl.h:66: warning: data definition has no type or
storage
class                                                                             
/usr/include/asm/fcntl.h:72: parse error before `loff_t'
/usr/include/asm/fcntl.h:72: warning: no semicolon at end of struct or
union
/usr/include/asm/fcntl.h:73: warning: data definition has no type or
storage
class                                                                             
/usr/include/asm/fcntl.h:74: parse error before `l_pid'
/usr/include/asm/fcntl.h:74: warning: data definition has no type or
storage
class                                                                             
In file included from boot1.c:109:
linuxelf.h:95: warning: type defaults to `int' in declaration of
`_dl_linux_resolve'                                                                           
In file included from boot1.c:110:
i386/syscall.h: In function `_dl_write':
i386/syscall.h:156: warning: control reaches end of non-void function
i386/syscall.h: In function `_dl_read':
i386/syscall.h:181: warning: control reaches end of non-void function
In file included from boot1.c:111:
i386/string.h: At top level:
i386/string.h:11: parse error before `size_t'
i386/string.h:13: parse error before `size_t'
i386/string.h:15: parse error before `size_t'
i386/string.h:18: parse error before `_dl_strspn'
i386/string.h:18: warning: type defaults to `int' in declaration of
`_dl_strspn'i386/string.h:18: warning: data definition has no type or
storage class
i386/string.h:19: parse error before `_dl_strcspn'
i386/string.h:19: warning: type defaults to `int' in declaration of
`_dl_strcspn'                                                                              
i386/string.h:19: warning: data definition has no type or storage class
i386/string.h:22: parse error before `_dl_strlen'
i386/string.h:22: warning: type defaults to `int' in declaration of
`_dl_strlen'i386/string.h:22: warning: data definition has no type or
storage class
i386/string.h:24: parse error before `size_t'
i386/string.h:25: parse error before `size_t'
i386/string.h:26: parse error before `size_t'
i386/string.h:27: parse error before `size_t'
i386/string.h:28: parse error before `size_t'
i386/string.h:54: parse error before `size_t'
i386/string.h: In function `_dl_strncpy':
i386/string.h:67: `src' undeclared (first use in this function)
i386/string.h:67: (Each undeclared identifier is reported only once
i386/string.h:67: for each function it appears in.)
i386/string.h:67: `dest' undeclared (first use in this function)
i386/string.h:67: `count' undeclared (first use in this function)
i386/string.h:69: warning: control reaches end of non-void function
i386/string.h: At top level:
i386/string.h:86: parse error before `size_t'
i386/string.h: In function `_dl_strncat':
i386/string.h:102: `src' undeclared (first use in this function)
i386/string.h:102: `dest' undeclared (first use in this function)
i386/string.h:102: `count' undeclared (first use in this function)
i386/string.h:105: warning: control reaches end of non-void function
i386/string.h: At top level:
i386/string.h:126: parse error before `size_t'
i386/string.h: In function `_dl_strncmp':
i386/string.h:143: `cs' undeclared (first use in this function)
i386/string.h:143: `ct' undeclared (first use in this function)
i386/string.h:143: `count' undeclared (first use in this function)
i386/string.h: At top level:
i386/string.h:180: parse error before `_dl_strspn'
i386/string.h:181: warning: return-type defaults to `int'
i386/string.h:204: parse error before `_dl_strcspn'
i386/string.h:205: warning: return-type defaults to `int'
i386/string.h:282: parse error before `_dl_strlen'
i386/string.h:283: warning: return-type defaults to `int'
i386/string.h:355: parse error before `size_t'
i386/string.h: In function `_dl_memcpy':
i386/string.h:369: `n' undeclared (first use in this function)
i386/string.h:369: `to' undeclared (first use in this function)
i386/string.h:369: `from' undeclared (first use in this function)
i386/string.h:372: warning: control reaches end of non-void function
i386/string.h: At top level:
i386/string.h:374: parse error before `size_t'
i386/string.h: In function `_dl_memmove':
i386/string.h:376: `dest' undeclared (first use in this function)
i386/string.h:376: `src' undeclared (first use in this function)
i386/string.h:381: `n' undeclared (first use in this function)
i386/string.h:394: warning: control reaches end of non-void function
i386/string.h: At top level:
i386/string.h:396: parse error before `size_t'
i386/string.h: In function `_dl_memcmp':
i386/string.h:407: `cs' undeclared (first use in this function)
i386/string.h:407: `ct' undeclared (first use in this function)
i386/string.h:407: `count' undeclared (first use in this function)
i386/string.h: At top level:
i386/string.h:412: parse error before `size_t'
i386/string.h: In function `_dl_memchr':
i386/string.h:415: `count' undeclared (first use in this function)
i386/string.h:423: `c' undeclared (first use in this function)
i386/string.h:423: `cs' undeclared (first use in this function)
i386/string.h: At top level:
i386/string.h:428: parse error before `size_t'
i386/string.h: In function `_dl_memset':
i386/string.h:434: `c' undeclared (first use in this function)
i386/string.h:434: `s' undeclared (first use in this function)
i386/string.h:434: `count' undeclared (first use in this function)
i386/string.h:437: warning: control reaches end of non-void function
boot1.c: At top level:
boot1.c:158: warning: type defaults to `int' in declaration of
`_dl_linux_resolve'                                                                             
boot1.c: In function `_dl_boot':
boot1.c:617: `caddr_t' undeclared (first use in this function)
boot1.c:617: parse error before `_dl_mmap'
boot1.c:248: warning: `zfileno' might be used uninitialized in this
function
i386/string.h:290: Invalid `asm' statement:
i386/string.h:290: fixed or forbidden register 5 (di) was spilled for
class DIREG.
i386/string.h:160: Invalid `asm' statement:
i386/string.h:160: fixed or forbidden register 4 (si) was spilled for
class SIREG.
i386/string.h:122: Invalid `asm' statement:
i386/string.h:122: fixed or forbidden register 4 (si) was spilled for
class SIREG.
i386/string.h:122: Invalid `asm' statement:
i386/string.h:122: fixed or forbidden register 4 (si) was spilled for
class SIREG.
boot1.c: In function `_dl_strdup':
i386/string.h:290: Invalid `asm' statement:
i386/string.h:290: fixed or forbidden register 5 (di) was spilled for
class DIREG.
i386/string.h:50: Invalid `asm' statement:
i386/string.h:50: fixed or forbidden register 4 (si) was spilled for
class SIREG.
boot1.c: In function `_dl_strspn':
i386/string.h:200: Invalid `asm' statement:
i386/string.h:200: fixed or forbidden register 0 (ax) was spilled for
class AREG.
boot1.c: In function `_dl_strcspn':
i386/string.h:224: Invalid `asm' statement:
i386/string.h:224: fixed or forbidden register 0 (ax) was spilled for
class AREG.
boot1.c: In function `_dl_strlen':
i386/string.h:290: Invalid `asm' statement:
i386/string.h:290: fixed or forbidden register 5 (di) was spilled for
class DIREG.
make: *** [boot1.o] Error 1
make: Leaving directory `/usr/src/RPM/BUILD/ld.so-1.9.5/d-link'
Bad exit status from /var/tmp/rpm-tmp.29868 (%build)
-------------------------------------------------

Even if I manually open  the RH6.2's src.rpm, applied all their patches,
run as they specified hen I still get all the known errors:

-------------------------------------------------  
[michaels at kobie ld.so-1.9.5]$ make -C d-link/ ARCH=i386 \
CC=~/lineo.cvs/uClibc.orig/extra/gcc-uClibc/gcc-uClibc-i386

make: Entering directory
`/home/michaels/tmp/ld.so-1.9.5/ld.so-1.9.5/d-link'
/home/michaels/lineo.cvs/uClibc.orig/extra/gcc-uClibc/gcc-uClibc-i386
-Wall -O4 -DVERSION=\"1.9.5\" -D_GNU_SOURCE  -I. -I./i386
-DNO_UNDERSCORE -DVERBOSE_DLINKER -DUSE_CACHE -fPIC -D__PIC__    -c -o
boot1.o boot1.c
In file included from boot1.c:109:
linuxelf.h:95: warning: type defaults to `int' in declaration of
`_dl_linux_resolve'
In file included from boot1.c:110:
i386/syscall.h: In function `_dl_write':
i386/syscall.h:156: warning: control reaches end of non-void function
i386/syscall.h: In function `_dl_read':
i386/syscall.h:181: warning: control reaches end of non-void function
boot1.c: At top level:
boot1.c:158: warning: type defaults to `int' in declaration of
`_dl_linux_resolve'
boot1.c: In function `_dl_boot':
boot1.c:248: warning: `zfileno' might be used uninitialized in this
function
i386/string.h:290: Invalid `asm' statement:
i386/string.h:290: fixed or forbidden register 5 (di) was spilled for
class DIREG.
i386/string.h:160: Invalid `asm' statement:
i386/string.h:160: fixed or forbidden register 4 (si) was spilled for
class SIREG.
i386/string.h:122: Invalid `asm' statement:
i386/string.h:122: fixed or forbidden register 4 (si) was spilled for
class SIREG.
i386/string.h:122: Invalid `asm' statement:
i386/string.h:122: fixed or forbidden register 4 (si) was spilled for
class SIREG.
boot1.c: In function `_dl_strdup':
i386/string.h:290: Invalid `asm' statement:
i386/string.h:290: fixed or forbidden register 5 (di) was spilled for
class DIREG.
i386/string.h:50: Invalid `asm' statement:
i386/string.h:50: fixed or forbidden register 4 (si) was spilled for
class SIREG.
make: *** [boot1.o] Error 1
make: Leaving directory
`/home/michaels/tmp/ld.so-1.9.5/ld.so-1.9.5/d-link' 

Manuel Novoa III wrote:
> 
> John and Michael,
> 
> On Wed, 07 Mar 2001, michaels at jungo.com wrote:
> > I'm happy that someone else besides myself taken upon him a burden of
> > bringing
> > ld.so to uClibc. I have started looking at ld.so-1.9.11 several days ago
> > as an alternative to glibc's ld-linux.so.2 (in glibc's /elf dir). Too
> > bad, that this ld.so is using various libc5 stuff, which is header-level
> > incompatible with uClibc.
> 
> I successfully built ld.so.1.9.5 for i386 from the RedHat package
> ld.so-1.9.5-13.src.rpm that came with RedHat 6.2.  Basically, apply their
> patches, then apply the attached patch.  After that it is just
> 
> make clean
> make ARCH=i386 CC=gcc-uClibc-i386
> 
> I never posted this because Erik had mentioned he had gotten the 2.something
> version build on arm.
> 
> Manuel
> 


-- 
Sincerely yours,
Michael Shmulevich
______________________________________
Software Developer
Jungo - R&D 
email: michaels at jungo.com
web: http://www.jungo.com
Phone: 1-877-514-0537(USA)  +972-9-8859365(Worldwide) ext. 233
Fax:   1-877-514-0538(USA)  +972-9-8859366(Worldwide)





More information about the uClibc mailing list