Browse Source

Fix up some problems noted by August Hoerandl <ahoerandl@gmx.at>
when cross compiling with shared lib support, there were spots
where the native 'ld' was mistakenly being called.

Eric Andersen 24 năm trước cách đây
mục cha
commit
d13d4ad946
2 tập tin đã thay đổi với 4 bổ sung4 xóa
  1. 3 3
      extra/scripts/get-needed-libgcc-objects.sh
  2. 1 1
      libc/Makefile

+ 3 - 3
extra/scripts/get-needed-libgcc-objects.sh

@@ -17,7 +17,7 @@ LIBGCC=`$CC -print-libgcc-file-name`
 echo Finding missing symbols in libc.a ...
 echo "    partial linking..."
 rm -f libc.ldr
-ld -r -o libc.ldr ../crt0.o --whole-archive ../libc.a
+$LD -r -o libc.ldr ../crt0.o --whole-archive ../libc.a
 
 if nm --undefined-only libc.ldr | grep -v "^main$" > sym.need ; then
     rm -f obj.need
@@ -44,7 +44,7 @@ echo Extracting referenced libgcc.a objects ...
 rm -f obj.need.0
 touch obj.need.0
 while [ -s obj.need ] && ! cmp -s obj.need obj.need.0 ; do
-    (cd tmp-gcc ; cat ../obj.need | xargs ld -r -o ../libgcc.ldr)
+    (cd tmp-gcc ; cat ../obj.need | xargs $LD -r -o ../libgcc.ldr)
     cp obj.need obj.need.0
     if nm --undefined-only libgcc.ldr > sym.need ; then
 	for SYM in `cat sym.need | sed -e 's/ U //g'` ; do
@@ -72,4 +72,4 @@ if [ -s sym.need ] ; then
 else
     echo Done
 fi
-exit 0
+exit 0

+ 1 - 1
libc/Makefile

@@ -43,7 +43,7 @@ $(LIBNAME): subdirs
 shared: $(TOPDIR)lib/$(LIBNAME)
 	@rm -rf tmp
 	@mkdir tmp
-	@(cd tmp; CC=$(CC) /bin/sh ../../extra/scripts/get-needed-libgcc-objects.sh)
+	@(cd tmp; CC=$(CC) LD=$(LD) /bin/sh ../../extra/scripts/get-needed-libgcc-objects.sh)
 	if [ -s ./tmp/libgcc-need.a ] ; then \
 		$(CC) -g $(LDFLAGS) -shared -o $(SHARED_FULLNAME) \
 		    -Wl,-soname=$(SHARED_MAJORNAME) -Wl,--whole-archive \