Browse Source

Set dynamic linker used to /lib/ld-linux.so.1. Changeable in Makefile.

Manuel Novoa III 23 years ago
parent
commit
a798822789
2 changed files with 10 additions and 1 deletions
  1. 5 0
      extra/gcc-uClibc/Makefile
  2. 5 1
      extra/gcc-uClibc/gcc-uClibc.c

+ 5 - 0
extra/gcc-uClibc/Makefile

@@ -2,6 +2,10 @@
 TOPDIR = ../../
 include $(TOPDIR)Rules.mak
 
+# NOTE: This may need to be modified on each system.
+# If your default dynamic linker works, comment this out.
+DYNAMIC_LINKER = /lib/ld-linux.so.1
+
 UCLIBC_DIR = $(shell (cd ../.. ; /bin/pwd))
 GCC_BIN = $(CC)
 GCC_LIB = $(shell $(CC) -print-libgcc-file-name )
@@ -25,6 +29,7 @@ gcc-uClibc.h: clean
 	echo "#define GCC_LIB " \"$(GCC_LIB)\" >> gcc-uClibc.h
 	echo "#define GCC_INCDIR " \"-I$(GCCINCDIR)/\" >> gcc-uClibc.h
 	echo "#define TARGET_ARCH " \"$(TARGET_ARCH)\" >> gcc-uClibc.h
+	echo "#define DYNAMIC_LINKER " \"$(DYNAMIC_LINKER)\" >> gcc-uClibc.h
 
 gcc-uClibc-native: gcc-uClibc.h gcc-uClibc.c
 	# uClibc built for native environment, so why not use it ;-)

+ 5 - 1
extra/gcc-uClibc/gcc-uClibc.c

@@ -123,7 +123,7 @@ int main(int argc, char **argv)
 			}
 		}
 		if (use_stdlib) {
-			gcc_argv[i++] = "-nostdlib";
+			gcc_argv[i++] = nostdlib;
 			if (use_static_linking) {
 				if (debugging) {
 					gcc_argv[i++] = UCLIBC_LIB_G;
@@ -131,6 +131,10 @@ int main(int argc, char **argv)
 					gcc_argv[i++] = UCLIBC_LIB;
 				}
 			} else {
+				if (DYNAMIC_LINKER[0]) { /* not empty string */
+					gcc_argv[i++] = "-Wl,--dynamic-linker";
+					gcc_argv[i++] = DYNAMIC_LINKER;
+				}
 				if (debugging) {
 					gcc_argv[i++] = UCLIBC_SHAREDLIB_G;
 				} else {