summaryrefslogtreecommitdiff
path: root/src/m/amdx86-64.h
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2010-04-24 12:50:03 -0700
committerGlenn Morris <rgm@gnu.org>2010-04-24 12:50:03 -0700
commitdfbbda83af47a8d3e39682639cc60f128d15f5d5 (patch)
treea8d76ccfd107a0dc0daf9bf40fb2832f4f35da25 /src/m/amdx86-64.h
parent1ddac986d7372a78f3dd98ecfd5386be9eaa84e6 (diff)
downloademacs-dfbbda83af47a8d3e39682639cc60f128d15f5d5.tar.gz
Minor simplications for src/m/amdx86-64.h.
* m/amdx86-64.h (START_FILES, LIB_STANDARD) [__OpenBSD__]: For clarity, revert to using fixed /usr/lib rather than $CRT_DIR. (START_FILES, LIB_STANDARD) [__FreeBSD__]: Merge into the generic case, since CRT_DIR defaults to /usr/lib. Suggested by Dan Nicolaescu.
Diffstat (limited to 'src/m/amdx86-64.h')
-rw-r--r--src/m/amdx86-64.h40
1 files changed, 14 insertions, 26 deletions
diff --git a/src/m/amdx86-64.h b/src/m/amdx86-64.h
index 0401b8bf90f..0fe99af4f55 100644
--- a/src/m/amdx86-64.h
+++ b/src/m/amdx86-64.h
@@ -72,30 +72,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
#undef DATA_SEG_BITS
-#ifdef __FreeBSD__
-
-/* The libraries for binaries native to the build host's architecture are
- installed under /usr/lib in FreeBSD, and the ones that need special paths
- are 32-bit compatibility libraries (installed under /usr/lib32). To build
- a native binary of Emacs on FreeBSD/amd64 we can just point to /usr/lib. */
+#ifdef __OpenBSD__
#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.
- 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. */
+#define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o
#undef LIB_STANDARD
-#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
-
-#elif defined(__OpenBSD__)
-
-#undef START_FILES
-#define START_FILES pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o
-#undef LIB_STANDARD
-#define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtend.o
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
#elif defined(__NetBSD__)
@@ -110,19 +92,25 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* LIB_STANDARD and START_FILES set correctly in s/darwin.h */
-#else /* !__OpenBSD__ && !__FreeBSD__ && !__NetBSD__ && !SOLARIS2
- && !__APPLE__ */
+#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
+ 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.
+ */
+#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.
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 START_FILES
#undef LIB_STANDARD
-#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 /* __OpenBSD__ */
#endif /* !i386 */
/* arch-tag: 8a5e001d-e12e-4692-a3a6-0b15ba271c6e