[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r100042: Use $CRT_DIR in more places.
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r100042: Use $CRT_DIR in more places. |
Date: |
Mon, 26 Apr 2010 20:14:14 -0700 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 100042
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Mon 2010-04-26 20:14:14 -0700
message:
Use $CRT_DIR in more places.
* configure.in (--with-crt-dir): Doc fix (now valid for all platforms).
(CRT_DIR): On (powerpc64|sparc64)-*-linux-gnu*, default to /usr/lib64.
On hpux10-20, default to /lib.
* src/m/amdx86-64.h (START_FILES, LIB_STANDARD): Change the logic around,
since the defaults (set by the system file) are fine in most cases.
[GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__]: Remove sections.
* src/m/ibms390x.h (START_FILES, LIB_STANDARD):
* src/m/macppc.h (START_FILES, LIB_STANDARD) [GNU_LINUX]:
* src/m/sparc.h (START_FILES, LIB_STANDARD) [__linux__]:
Remove definitions, since they are set correctly in s/gnu-linux.h.
* src/s/freebsd.h (START_FILES, LIB_STANDARD):
* src/s/gnu-linux.h (START_FILES, LIB_STANDARD):
* src/s/hpux10-20.h (START_FILES):
* src/s/netbsd.h (START_FILES, LIB_STANDARD, START_FILES_1, END_FILES_1):
Use $CRT_DIR in place of fixed /usr/lib, /lib directories.
* src/Makefile.in: Comment.
modified:
ChangeLog
configure.in
src/ChangeLog
src/Makefile.in
src/m/amdx86-64.h
src/m/ibms390x.h
src/m/macppc.h
src/m/sparc.h
src/s/freebsd.h
src/s/gnu-linux.h
src/s/hpux10-20.h
src/s/netbsd.h
=== modified file 'ChangeLog'
--- a/ChangeLog 2010-04-27 02:36:20 +0000
+++ b/ChangeLog 2010-04-27 03:14:14 +0000
@@ -1,5 +1,9 @@
2010-04-27 Glenn Morris <address@hidden>
+ * configure.in (--with-crt-dir): Doc fix (now valid for all platforms).
+ (CRT_DIR): On (powerpc64|sparc64)-*-linux-gnu*, default to /usr/lib64.
+ On hpux10-20, default to /lib.
+
* configure.in (LUCID_LIBW, LIBXP, WIDGET_OBJ): New output variables.
2010-04-26 Dan Nicolaescu <address@hidden>
=== modified file 'configure.in'
--- a/configure.in 2010-04-27 02:36:20 +0000
+++ b/configure.in 2010-04-27 03:14:14 +0000
@@ -189,7 +189,7 @@
CRT_DIR=
AC_ARG_WITH([crt-dir],dnl
[AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
-This option is only used on x86-64 and s390x GNU/Linux architectures.])])
+The default is /usr/lib, or /usr/lib64 on some platforms.])])
CRT_DIR="${with_crt_dir}"
AC_ARG_WITH([gnustep-conf],dnl
@@ -983,29 +983,40 @@
AC_SYS_LARGEFILE
-## Note: at present CRT_DIR is only used for amdx86-64 and ibms390x.
-## Other machine types hard-code the location in src/[ms]/*.h.
-case "${canonical}" in
- x86_64-*-linux-gnu* | s390x-*-linux-gnu* )
-
- ## On x86-64 and s390x GNU/Linux distributions, the standard library
- ## can be in a variety of places. We only try /usr/lib64 and /usr/lib.
- ## For anything else (eg /usr/lib32), it is up the user to specify
- ## the location (bug#5655).
- ## Test for crtn.o, not just the directory, because sometimes the
- ## directory exists but does not have the relevant files (bug#1287).
- ## If user specified a crt-dir, use that unconditionally.
- if test "X$CRT_DIR" = "X"; then
- CRT_DIR=/usr/lib
- test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
- fi
-
- test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
- AC_MSG_ERROR([crt*.o not found. Use --with-crt-dir to specify the
location.])
- ;;
-
-esac
-test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
+## If user specified a crt-dir, use that unconditionally.
+if test "X$CRT_DIR" = "X"; then
+
+ case "$canonical" in
+ x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
+ ## On x86-64 and s390x GNU/Linux distributions, the standard library
+ ## can be in a variety of places. We only try /usr/lib64 and /usr/lib.
+ ## For anything else (eg /usr/lib32), it is up the user to specify
+ ## the location (bug#5655).
+ ## Test for crtn.o, not just the directory, because sometimes the
+ ## directory exists but does not have the relevant files (bug#1287).
+ ## FIXME better to test for binary compatibility somehow.
+ test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
+ ;;
+
+ powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
+ esac
+
+ case "$opsys" in
+ hpux10-20) CRT_DIR=/lib ;;
+ esac
+
+ ## Default is /usr/lib.
+ test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
+
+else
+
+ ## Some platforms don't use any of these files, so it is not
+ ## appropriate to put this test outside the if block.
+ test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
+ AC_MSG_ERROR([crt*.o not found in specified location.])
+
+fi
+
AC_SUBST(CRT_DIR)
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2010-04-27 02:36:20 +0000
+++ b/src/ChangeLog 2010-04-27 03:14:14 +0000
@@ -1,5 +1,18 @@
2010-04-27 Glenn Morris <address@hidden>
+ * m/amdx86-64.h (START_FILES, LIB_STANDARD): Change the logic around,
+ since the defaults (set by the system file) are fine in most cases.
+ [GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__]: Remove sections.
+ * m/ibms390x.h (START_FILES, LIB_STANDARD):
+ * m/macppc.h (START_FILES, LIB_STANDARD) [GNU_LINUX]:
+ * m/sparc.h (START_FILES, LIB_STANDARD) [__linux__]:
+ Remove definitions, since they are set correctly in s/gnu-linux.h.
+ * s/freebsd.h (START_FILES, LIB_STANDARD):
+ * s/gnu-linux.h (START_FILES, LIB_STANDARD):
+ * s/hpux10-20.h (START_FILES):
+ * s/netbsd.h (START_FILES, LIB_STANDARD, START_FILES_1, END_FILES_1):
+ Use $CRT_DIR in place of fixed /usr/lib, /lib directories.
+
* Makefile.in (LIBXP, LUCID_LIBW, WIDGET_OBJ): Set via configure.
(MOTIF_LIBW): Use $LIBXP.
(otherobj): Use $WIDGET_OBJ.
=== modified file 'src/Makefile.in'
--- a/src/Makefile.in 2010-04-27 02:36:20 +0000
+++ b/src/Makefile.in 2010-04-27 03:14:14 +0000
@@ -68,7 +68,6 @@
OTHER_FILES = @OTHER_FILES@
-## Only used by amdx86-64 and ibms390x GNU/Linux.
address@hidden@
address@hidden@
=== modified file 'src/m/amdx86-64.h'
--- a/src/m/amdx86-64.h 2010-04-25 22:16:58 +0000
+++ b/src/m/amdx86-64.h 2010-04-27 03:14:14 +0000
@@ -67,34 +67,18 @@
/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
#undef DATA_SEG_BITS
-#ifdef __OpenBSD__
-
-#undef START_FILES
-#define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o
-#undef LIB_STANDARD
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
-
-#elif defined(__NetBSD__)
-
-/* LIB_STANDARD and START_FILES set correctly in s/netbsd.h */
-
-#elif defined(SOLARIS2)
-
-#undef START_FILES
-#undef LIB_STANDARD
-
-#elif defined(__APPLE__)
-
-/* LIB_STANDARD and START_FILES set correctly in s/darwin.h */
-
-#else /* !__OpenBSD__ && !__NetBSD__ && !SOLARIS2 && !__APPLE__ */
-/* CRT_DIR defaults to /usr/lib. On GNU/Linux, it may be /usr/lib64.
- On FreeBSD, the libraries for binaries native to the build host's
+
+/* For GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__, things are set
+ correctly in s/gnu-linux.h, netbsd.h, darwin.h. */
+#ifdef SOLARIS2
+#undef START_FILES
+#undef LIB_STANDARD
+#elif defined (__FreeBSD__) || (defined (DARWIN_OS) && !defined (__APPLE__))
+/* On FreeBSD, the libraries for binaries native to the build host's
architecture are installed under /usr/lib, and the ones that need
special paths are 32-bit compatibility libraries (installed under
/usr/lib32). So to build a native binary of Emacs on FreeBSD/amd64
- we can just point to /usr/lib.
- */
+ we can just point to /usr/lib (the default $CRT_DIR). */
#undef START_FILES
#define START_FILES pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o
/* The duplicate -lgcc is intentional in the definition of LIB_STANDARD.
@@ -105,7 +89,7 @@
#undef LIB_STANDARD
#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
-#endif /* __OpenBSD__ */
+#endif /* SOLARIS2 */
#endif /* !i386 */
/* arch-tag: 8a5e001d-e12e-4692-a3a6-0b15ba271c6e
=== modified file 'src/m/ibms390x.h'
--- a/src/m/ibms390x.h 2010-04-25 22:16:58 +0000
+++ b/src/m/ibms390x.h 2010-04-27 03:14:14 +0000
@@ -85,11 +85,5 @@
#define XPNTR(a) XUINT (a)
-#undef START_FILES
-#define START_FILES pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o
-
-#undef LIB_STANDARD
-#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
-
/* arch-tag: 4b87653c-6add-4663-8691-7d9dc17b5519
(do not change this comment) */
=== modified file 'src/m/macppc.h'
--- a/src/m/macppc.h 2010-04-25 22:16:58 +0000
+++ b/src/m/macppc.h 2010-04-27 03:14:14 +0000
@@ -39,12 +39,6 @@
#ifdef GNU_LINUX
#define LINKER $(CC) -nostdlib
-#ifdef _ARCH_PPC64
-#undef START_FILES
-#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
-#undef LIB_STANDARD
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
-#endif
#endif
#ifdef _ARCH_PPC64
=== modified file 'src/m/sparc.h'
--- a/src/m/sparc.h 2010-04-25 22:16:58 +0000
+++ b/src/m/sparc.h 2010-04-27 03:14:14 +0000
@@ -52,17 +52,6 @@
#ifdef __arch64__ /* GCC, 64-bit ABI. */
#define BITS_PER_LONG 64
-#ifdef __linux__
-#undef START_FILES
-#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
-
-/* The duplicate -lgcc is intentional in the definition of LIB_STANDARD.
- The reason is that some functions in libgcc.a call functions from libc.a,
- and some libc.a functions need functions from libgcc.a. Since most
- versions of ld are one-pass linkers, we need to mention -lgcc twice,
- or else we risk getting unresolved externals. */
-#undef LIB_STANDARD
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
#endif
#ifndef _LP64
=== modified file 'src/s/freebsd.h'
--- a/src/s/freebsd.h 2010-04-23 22:18:49 +0000
+++ b/src/s/freebsd.h 2010-04-27 03:14:14 +0000
@@ -46,8 +46,8 @@
there, contrary to what a stock GCC would do. */
#define LD_SWITCH_SYSTEM -L/usr/local/lib
-#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
/usr/lib/crtbegin.o
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
+#define START_FILES pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o
$(CRT_DIR)/crtbegin.o
+#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o
#undef LIB_GCC
#define LIB_GCC
=== modified file 'src/s/gnu-linux.h'
--- a/src/s/gnu-linux.h 2010-04-21 05:33:24 +0000
+++ b/src/s/gnu-linux.h 2010-04-27 03:14:14 +0000
@@ -168,7 +168,7 @@
/* Ask GCC where to find libgcc.a. */
#define LIB_GCC `$(CC) $(C_SWITCH_X_SITE) -print-libgcc-file-name`
-#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
+#define START_FILES pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o
/* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option
says where to find X windows at run time. */
@@ -190,7 +190,7 @@
#undef LIB_GCC
#define LIB_GCC
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
+#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
/* _BSD_SOURCE is redundant, at least in glibc2, since we define
_GNU_SOURCE. Left in in case it's relevant to libc5 systems and
=== modified file 'src/s/hpux10-20.h'
--- a/src/s/hpux10-20.h 2010-04-23 22:18:49 +0000
+++ b/src/s/hpux10-20.h 2010-04-27 03:14:14 +0000
@@ -170,7 +170,7 @@
#define NO_REMAP
-#define START_FILES pre-crt0.o /lib/crt0.o
+#define START_FILES pre-crt0.o $(CRT_DIR)/crt0.o
/* Define VIRT_ADDR_VARIES if the virtual addresses of
pure and impure space as loaded can vary, and even their
=== modified file 'src/s/netbsd.h'
--- a/src/s/netbsd.h 2010-04-23 22:18:49 +0000
+++ b/src/s/netbsd.h 2010-04-27 03:14:14 +0000
@@ -28,14 +28,14 @@
#define LIBS_TERMCAP -ltermcap
-#define START_FILES pre-crt0.o /usr/lib/crt0.o START_FILES_1
/usr/lib/crtbegin.o
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o END_FILES_1
+#define START_FILES pre-crt0.o $(CRT_DIR)/crt0.o START_FILES_1
$(CRT_DIR)/crtbegin.o
+#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtend.o END_FILES_1
#undef LIB_GCC
#define LIB_GCC
#ifdef HAVE_CRTIN
-#define START_FILES_1 /usr/lib/crti.o
-#define END_FILES_1 /usr/lib/crtn.o
+#define START_FILES_1 $(CRT_DIR)/crti.o
+#define END_FILES_1 $(CRT_DIR)/crtn.o
#else
#define START_FILES_1
#define END_FILES_1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r100042: Use $CRT_DIR in more places.,
Glenn Morris <=