emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100153: Fix for Bug#5655, backpor


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r100153: Fix for Bug#5655, backported from trunk.
Date: Wed, 03 Nov 2010 14:55:19 -0400
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100153
author: Glenn Morris <address@hidden>
committer: Chong Yidong <address@hidden>
branch nick: emacs-23
timestamp: Wed 2010-11-03 14:55:19 -0400
message:
  Fix for Bug#5655, backported from trunk.
  
  * configure.in (CRT_DIR): New output variable.
  (--with-crt-dir): New option.  (Bug#5655)
  (HAVE_LIB64_DIR): Remove.
  
  * src/Makefile.in (CRT_DIR): New variable, set by configure.
  * src/m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
  Use $CRT_DIR rather than HAVE_LIB64_DIR.  (Bug#5655)
modified:
  ChangeLog
  configure.in
  etc/NEWS
  src/ChangeLog
  src/Makefile.in
  src/m/amdx86-64.h
  src/m/ibms390x.h
=== modified file 'ChangeLog'
--- a/ChangeLog 2010-10-12 03:47:36 +0000
+++ b/ChangeLog 2010-11-03 18:55:19 +0000
@@ -1,3 +1,9 @@
+2010-11-03  Glenn Morris  <address@hidden>
+
+       * configure.in (CRT_DIR): New output variable.
+       (--with-crt-dir): New option.  (Bug#5655)
+       (HAVE_LIB64_DIR): Remove.
+
 2010-10-12  Glenn Morris  <address@hidden>
 
        * BUGS, INSTALL.BZR, README: Updates.

=== modified file 'configure.in'
--- a/configure.in      2010-05-10 00:37:59 +0000
+++ b/configure.in      2010-11-03 18:55:19 +0000
@@ -169,6 +169,12 @@
    fi
 fi
 
+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.])])
+CRT_DIR="${with_crt_dir}"
+
 AC_ARG_WITH([gnustep-conf],dnl
 [AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default 
$GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
 test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
@@ -996,18 +1002,28 @@
 dnl Do this early because it can frob feature test macros for Unix-98 &c.
 AC_SYS_LARGEFILE
 
-
-### The standard library on x86-64 and s390x GNU/Linux distributions can
-### be located in either /usr/lib64 or /usr/lib.
-### In some rare cases, /usr/lib64 exists but does not contain the
-### relevant files (bug#1287).  Hence test for crtn.o.
+## 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* )
-    if test -e /usr/lib64/crtn.o; then
-      AC_DEFINE(HAVE_LIB64_DIR, 1,
-        [Define to 1 if the directory /usr/lib64 exists.])
-fi
+   ## 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
+AC_SUBST(CRT_DIR)
 
 dnl This function defintion taken from Gnome 2.0
 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, 
action-not)

=== modified file 'etc/NEWS'
--- a/etc/NEWS  2010-11-01 03:13:42 +0000
+++ b/etc/NEWS  2010-11-03 18:55:19 +0000
@@ -17,6 +17,11 @@
 
 * Installation Changes in Emacs 23.3
 
+---
+** New configure option --with-crt-dir specifies the location of your
+crt*.o files, if they are in a non-standard location.  This is only
+used on x86-64 and s390x GNU/Linux architectures.
+
 * Startup Changes in Emacs 23.3
 
 * Changes in Emacs 23.3

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2010-11-01 11:30:33 +0000
+++ b/src/ChangeLog     2010-11-03 18:55:19 +0000
@@ -1,3 +1,9 @@
+2010-11-03  Glenn Morris  <address@hidden>
+
+       * Makefile.in (CRT_DIR): New variable, set by configure.
+       * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
+       Use $CRT_DIR rather than HAVE_LIB64_DIR.  (Bug#5655)
+
 2010-11-01  Jan Djärv  <address@hidden>
 
        * process.c (kbd_is_on_hold): New variable.

=== modified file 'src/Makefile.in'
--- a/src/Makefile.in   2010-03-28 18:55:20 +0000
+++ b/src/Makefile.in   2010-11-03 18:55:19 +0000
@@ -67,6 +67,9 @@
 
 OTHER_FILES = @OTHER_FILES@
 
+## Only used by amdx86-64 and ibms390x GNU/Linux.
address@hidden@
+
 # ========================== start of cpp stuff =======================
 /* From here on, comments must be done in C syntax.  */
 

=== modified file 'src/m/amdx86-64.h'
--- a/src/m/amdx86-64.h 2010-01-13 08:35:10 +0000
+++ b/src/m/amdx86-64.h 2010-11-03 18:55:19 +0000
@@ -80,7 +80,7 @@
    a native binary of Emacs on FreeBSD/amd64 we can just point to /usr/lib.  */
 
 #undef START_FILES
-#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
 
 /* 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,
@@ -88,14 +88,14 @@
    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/lib/crtn.o
+#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
 
 #elif defined(__OpenBSD__)
 
 #undef START_FILES
-#define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o
+#define START_FILES pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o
 #undef LIB_STANDARD
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
+#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtend.o
 
 #elif defined(__NetBSD__)
 
@@ -119,13 +119,8 @@
    or else we risk getting unresolved externals.  */
 #undef START_FILES
 #undef LIB_STANDARD
-#ifdef HAVE_LIB64_DIR
-#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
-#else
-#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
-#endif
+#define START_FILES pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o
+#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
 
 #endif /* __FreeBSD__ */
 #endif /* !i386 */

=== modified file 'src/m/ibms390x.h'
--- a/src/m/ibms390x.h  2010-01-13 08:35:10 +0000
+++ b/src/m/ibms390x.h  2010-11-03 18:55:19 +0000
@@ -91,18 +91,10 @@
 #define XPNTR(a) XUINT (a)
 
 #undef START_FILES
-#ifdef HAVE_LIB64_DIR
-#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
-#else
-#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
-#endif
+#define START_FILES pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o
 
 #undef LIB_STANDARD
-#ifdef HAVE_LIB64_DIR
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
-#else
-#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
-#endif
+#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
 
 /* arch-tag: 4b87653c-6add-4663-8691-7d9dc17b5519
    (do not change this comment) */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]