[uClibc]gcc-uclibc use_build_dir/use_rpath
Andreas Neuhaus
andy at fasta.fh-dortmund.de
Sun May 27 23:25:54 UTC 2001
hi everybody,
i saw the latest path where gcc-uclibc uses the build dir when called as
*build*. i also noticed that various parts of uClibc are itself compiled
using gcc-uclibc. shouldn't those parts also use the build dir for
libraries/includes to make sure that the right headers are included (patch
below)?
i'm not sure about that rpath options. they seem to affect runtime.
use_build_path should not have any affect on runtime.
i understand build/rpath like this:
use_build_dir: use lib/inc from build dir during compile time, use libs from
INSTALL_DIR during runtime.
use_rpath: use lib/inc from INSTALL_DIR during compile time, use libs from
build dir during runtime.
both set: use lib/inc from build dir during compile time, use libs from
build dir during runtime.
none set: use lib/inc from INSTALL_DIR during compile time, use libs from
INSTALL_DIR during runtime.
the patch below also changes gcc-uclibc to behave like described above.
regards,
andreas neuhaus
Index: extra/gcc-uClibc/Makefile
===================================================================
RCS file: /var/cvs/uClibc/extra/gcc-uClibc/Makefile,v
retrieving revision 1.20
diff -u -r1.20 Makefile
--- extra/gcc-uClibc/Makefile 2001/05/16 20:14:45 1.20
+++ extra/gcc-uClibc/Makefile 2001/05/27 20:58:19
@@ -21,6 +21,8 @@
gcc-uClibc: gcc-uClibc.h gcc-uClibc.c
gcc -Wall -O2 -s gcc-uClibc.c -o $(TARGET_ARCH)-uclibc-gcc
+ ln -sf $(TARGET_ARCH)-uclibc-gcc $(TARGET_ARCH)-uclibc-gcc-build
+ ln -sf $(TARGET_ARCH)-uclibc-gcc $(TARGET_ARCH)-uclibc-gcc-rpath
ld-uClibc:
@echo "#!/bin/sh" > $(TARGET_ARCH)-uclibc-ld
Index: extra/gcc-uClibc/gcc-uClibc.c
===================================================================
RCS file: /var/cvs/uClibc/extra/gcc-uClibc/gcc-uClibc.c,v
retrieving revision 1.16
diff -u -r1.16 gcc-uClibc.c
--- extra/gcc-uClibc/gcc-uClibc.c 2001/05/27 15:55:18 1.16
+++ extra/gcc-uClibc/gcc-uClibc.c 2001/05/27 22:11:18
@@ -184,16 +184,17 @@
#else
char *dlstr =
"-Wl,--dynamic-linker,"DYNAMIC_LINKER;
if (strstr(DYNAMIC_LINKER,"uclibc") != 0)
{ /* custom linker */
- use_rpath = 0; /* so -rpath not
needed for normal case */
- if (use_build_dir) {
+ if (use_build_dir && use_rpath) {
dlstr =
"-Wl,--dynamic-linker," \
UCLIBC_BUILD_DIR
DYNAMIC_LINKER;
}
+ if (!use_build_dir)
+ use_rpath = 0; /* so -rpath
not needed for normal case */
}
gcc_argv[i++] = dlstr;
#endif
}
- if (use_build_dir || use_rpath) {
+ if (use_rpath) {
gcc_argv[i++] = rpath[use_build_dir];
}
}
Index: ldso/Rules.mak
===================================================================
RCS file: /var/cvs/uClibc/ldso/Rules.mak,v
retrieving revision 1.5
diff -u -r1.5 Rules.mak
--- ldso/Rules.mak 2001/05/25 01:20:51 1.5
+++ ldso/Rules.mak 2001/05/27 20:58:19
@@ -7,7 +7,7 @@
# Do NOT use -fomit-frame-pointer -- It won't work!
CFLAGS += -DVERSION=\"$(LDSO_VERSION)\"
-CC = $(TOPDIR)extra/gcc-uClibc/$(NATIVE_ARCH)-uclibc-gcc
+CC = $(TOPDIR)extra/gcc-uClibc/$(NATIVE_ARCH)-uclibc-gcc-build
ifeq ($(DEVEL),true)
CFLAGS += -DUCLIBC_INSTALL_DIR=\"$(INSTALL_DIR)\"
endif
Index: ldso/libdl/Makefile
===================================================================
RCS file: /var/cvs/uClibc/ldso/libdl/Makefile,v
retrieving revision 1.8
diff -u -r1.8 Makefile
--- ldso/libdl/Makefile 2001/05/18 20:31:18 1.8
+++ ldso/libdl/Makefile 2001/05/27 20:58:19
@@ -27,7 +27,7 @@
LIBDL=libdl.a
LIBDL_SHARED=libdl.so
LIBDL_SHARED_FULLNAME=libdl-$(MAJOR_VERSION).$(MINOR_VERSION).so
-TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
CSRC= dlib.c
OBJS=$(patsubst %.c,%.o, $(CSRC))
Index: libcrypt/Makefile
===================================================================
RCS file: /var/cvs/uClibc/libcrypt/Makefile,v
retrieving revision 1.8
diff -u -r1.8 Makefile
--- libcrypt/Makefile 2001/05/18 20:31:18 1.8
+++ libcrypt/Makefile 2001/05/27 20:58:19
@@ -26,7 +26,7 @@
LIBCRYPT=libcrypt.a
LIBCRYPT_SHARED=libcrypt.so
LIBCRYPT_SHARED_FULLNAME=libcrypt-$(MAJOR_VERSION).$(MINOR_VERSION).so
-TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
CSRC = crypt.c des.c md5.c
OBJS=$(patsubst %.c,%.o, $(CSRC))
Index: libm/Makefile
===================================================================
RCS file: /var/cvs/uClibc/libm/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- libm/Makefile 2001/05/18 20:31:17 1.5
+++ libm/Makefile 2001/05/27 20:58:19
@@ -25,7 +25,7 @@
LIBM=libm.a
LIBM_SHARED=libm.so
LIBM_SHARED_FULLNAME=libm-$(MAJOR_VERSION).$(MINOR_VERSION).so
-TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
DIRS=
ifeq ($(strip $(HAS_FLOATS)),true)
Index: libm/double/Makefile
===================================================================
RCS file: /var/cvs/uClibc/libm/double/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- libm/double/Makefile 2001/05/25 07:11:50 1.4
+++ libm/double/Makefile 2001/05/27 20:58:19
@@ -23,7 +23,7 @@
include $(TOPDIR)Rules.mak
LIBM=../libm.a
-TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
CSRC=acosh.c airy.c asin.c asinh.c atan.c atanh.c bdtr.c beta.c \
btdtr.c cbrt.c chbevl.c chdtr.c clog.c cmplx.c const.c \
Index: libm/float/Makefile
===================================================================
RCS file: /var/cvs/uClibc/libm/float/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- libm/float/Makefile 2001/05/12 06:19:10 1.2
+++ libm/float/Makefile 2001/05/27 20:58:19
@@ -23,7 +23,7 @@
include $(TOPDIR)Rules.mak
LIBM=../libm.a
-TARGET_CC= $(TOPDIR)/extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)/extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
CSRC= acoshf.c airyf.c asinf.c asinhf.c atanf.c \
atanhf.c bdtrf.c betaf.c cbrtf.c chbevlf.c chdtrf.c \
Index: libm/ldouble/Makefile
===================================================================
RCS file: /var/cvs/uClibc/libm/ldouble/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- libm/ldouble/Makefile 2001/05/12 06:19:10 1.2
+++ libm/ldouble/Makefile 2001/05/27 20:58:19
@@ -23,7 +23,7 @@
include $(TOPDIR)Rules.mak
LIBM=../libm.a
-TARGET_CC= $(TOPDIR)/extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)/extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
CSRC=acoshl.c asinhl.c asinl.c atanhl.c atanl.c bdtrl.c btdtrl.c cbrtl.c \
chdtrl.c coshl.c ellpel.c ellpkl.c elliel.c ellikl.c ellpjl.c \
Index: libresolv/Makefile
===================================================================
RCS file: /var/cvs/uClibc/libresolv/Makefile,v
retrieving revision 1.1
diff -u -r1.1 Makefile
--- libresolv/Makefile 2001/05/21 21:26:59 1.1
+++ libresolv/Makefile 2001/05/27 20:58:19
@@ -26,7 +26,7 @@
LIBRESOLV=libresolv.a
LIBRESOLV_SHARED=libresolv.so
LIBRESOLV_SHARED_FULLNAME=libresolv-$(MAJOR_VERSION).$(MINOR_VERSION).so
-TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
CSRC = resolv.c
OBJS=$(patsubst %.c,%.o, $(CSRC))
Index: libutil/Makefile
===================================================================
RCS file: /var/cvs/uClibc/libutil/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- libutil/Makefile 2001/05/18 20:31:18 1.5
+++ libutil/Makefile 2001/05/27 20:58:19
@@ -27,7 +27,7 @@
LIBUTIL=libutil.a
LIBUTIL_SHARED=libutil.so
LIBUTIL_SHARED_FULLNAME=libutil-$(MAJOR_VERSION).$(MINOR_VERSION).so
-TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
+TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc-build
CSRC=forkpty.c login.c login_tty.c logout.c logwtmp.c openpty.c
OBJS=$(patsubst %.c,%.o, $(CSRC))
More information about the uClibc
mailing list