mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-25 03:17:13 +00:00
179 lines
6.2 KiB
Diff
179 lines
6.2 KiB
Diff
|
From bc09a9236f67e710d545ac11bcdac7b55dbcc1a0 Mon Sep 17 00:00:00 2001
|
||
|
From: John Ericson <John.Ericson@Obsidian.Systems>
|
||
|
Date: Thu, 12 Oct 2017 11:16:57 -0400
|
||
|
Subject: [PATCH] Build components separately
|
||
|
|
||
|
---
|
||
|
bfd/configure.ac | 18 +++---------------
|
||
|
opcodes/Makefile.am | 17 +++++++++++++----
|
||
|
opcodes/configure.ac | 45 ++++++---------------------------------------
|
||
|
3 files changed, 22 insertions(+), 58 deletions(-)
|
||
|
|
||
|
diff --git a/bfd/configure.ac b/bfd/configure.ac
|
||
|
index 9a183c1628..8728837384 100644
|
||
|
--- a/bfd/configure.ac
|
||
|
+++ b/bfd/configure.ac
|
||
|
@@ -241,31 +241,19 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
|
||
|
|
||
|
LT_LIB_M
|
||
|
|
||
|
-# When building a shared libbfd, link against the pic version of libiberty
|
||
|
-# so that apps that use libbfd won't need libiberty just to satisfy any
|
||
|
-# libbfd references.
|
||
|
-# We can't do that if a pic libiberty is unavailable since including non-pic
|
||
|
-# code would insert text relocations into libbfd.
|
||
|
SHARED_LIBADD=
|
||
|
-SHARED_LDFLAGS=
|
||
|
+SHARED_LDFLAGS=-liberty
|
||
|
if test "$enable_shared" = "yes"; then
|
||
|
-changequote(,)dnl
|
||
|
- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
|
||
|
-changequote([,])dnl
|
||
|
- if test -n "$x"; then
|
||
|
- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
|
||
|
- fi
|
||
|
-
|
||
|
# More hacks to build DLLs on Windows.
|
||
|
case "${host}" in
|
||
|
*-*-cygwin*)
|
||
|
SHARED_LDFLAGS="-no-undefined"
|
||
|
- SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
|
||
|
+ SHARED_LIBADD="-liberty -lintl -lcygwin -lkernel32"
|
||
|
;;
|
||
|
|
||
|
# Hack to build or1k-src on OSX
|
||
|
or1k*-*-darwin*)
|
||
|
- SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl"
|
||
|
+ SHARED_LIBADD="-liberty -lintl"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
|
||
|
index 925e7ff651..47b395c195 100644
|
||
|
--- a/opcodes/Makefile.am
|
||
|
+++ b/opcodes/Makefile.am
|
||
|
@@ -52,7 +52,7 @@ libopcodes_la_LDFLAGS += -rpath $(rpath_bfdlibdir)
|
||
|
endif
|
||
|
|
||
|
# This is where bfd.h lives.
|
||
|
-BFD_H = ../bfd/bfd.h
|
||
|
+BFD_H = $(BFDDIR)/bfd.h
|
||
|
|
||
|
BUILD_LIBS = @BUILD_LIBS@
|
||
|
BUILD_LIB_DEPS = @BUILD_LIB_DEPS@
|
||
|
@@ -303,7 +303,7 @@ OFILES = @BFD_MACHINES@
|
||
|
# development.sh is used to determine -Werror default.
|
||
|
CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh
|
||
|
|
||
|
-AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
|
||
|
+AM_CPPFLAGS = -I. -I$(srcdir) -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
|
||
|
|
||
|
disassemble.lo: disassemble.c
|
||
|
if am__fastdepCC
|
||
|
@@ -324,12 +324,21 @@ libopcodes_la_SOURCES = dis-buf.c disassemble.c dis-init.c
|
||
|
# old version of libbfd, or to pick up libbfd for the wrong architecture
|
||
|
# if host != build. So for building with shared libraries we use a
|
||
|
# hardcoded path to libbfd.so instead of relying on the entries in libbfd.la.
|
||
|
-libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@
|
||
|
+libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@ libtool-soversion
|
||
|
libopcodes_la_LIBADD = $(OFILES) @SHARED_LIBADD@
|
||
|
-libopcodes_la_LDFLAGS += -release `cat ../bfd/libtool-soversion` @SHARED_LDFLAGS@
|
||
|
+libopcodes_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@
|
||
|
# Allow dependency tracking to work on all the source files.
|
||
|
EXTRA_libopcodes_la_SOURCES = $(LIBOPCODES_CFILES)
|
||
|
|
||
|
+libtool-soversion:
|
||
|
+ @echo "creating $@"
|
||
|
+ bfd_soversion="$(VERSION)" ;\
|
||
|
+ . $(BFDDIR)/development.sh ;\
|
||
|
+ if test "$$development" = true ; then \
|
||
|
+ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
|
||
|
+ fi ;\
|
||
|
+ echo "$${bfd_soversion}" > $@
|
||
|
+
|
||
|
# libtool will build .libs/libopcodes.a. We create libopcodes.a in
|
||
|
# the build directory so that we don't have to convert all the
|
||
|
# programs that use libopcodes.a simultaneously. This is a hack which
|
||
|
diff --git a/opcodes/configure.ac b/opcodes/configure.ac
|
||
|
index b9f5eb8a4f..ef2c2152b7 100644
|
||
|
--- a/opcodes/configure.ac
|
||
|
+++ b/opcodes/configure.ac
|
||
|
@@ -89,6 +89,7 @@ AC_PROG_INSTALL
|
||
|
|
||
|
AC_CHECK_HEADERS(string.h strings.h stdlib.h limits.h)
|
||
|
ACX_HEADER_STRING
|
||
|
+GCC_HEADER_STDINT(bfd_stdint.h)
|
||
|
|
||
|
AC_CHECK_DECLS([basename, stpcpy])
|
||
|
|
||
|
@@ -134,61 +135,27 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
|
||
|
|
||
|
LT_LIB_M
|
||
|
|
||
|
-#Libs for generator progs
|
||
|
-if test "x$cross_compiling" = "xno"; then
|
||
|
- BUILD_LIBS=../libiberty/libiberty.a
|
||
|
- BUILD_LIB_DEPS=$BUILD_LIBS
|
||
|
-else
|
||
|
- # if cross-compiling, assume that the system provides -liberty
|
||
|
- # and that the version is compatible with new headers.
|
||
|
- BUILD_LIBS=-liberty
|
||
|
- BUILD_LIB_DEPS=
|
||
|
-fi
|
||
|
-BUILD_LIBS="$BUILD_LIBS $LIBINTL"
|
||
|
-BUILD_LIB_DEPS="$BUILD_LIB_DEPS $LIBINTL_DEP"
|
||
|
+BUILD_LIBS="-liberty $LIBINTL"
|
||
|
+BUILD_LIB_DEPS="$LIBINTL_DEP"
|
||
|
|
||
|
AC_SUBST(BUILD_LIBS)
|
||
|
AC_SUBST(BUILD_LIB_DEPS)
|
||
|
|
||
|
# Horrible hacks to build DLLs on Windows and a shared library elsewhere.
|
||
|
SHARED_LDFLAGS=
|
||
|
-SHARED_LIBADD=
|
||
|
+SHARED_LIBADD=-liberty
|
||
|
SHARED_DEPENDENCIES=
|
||
|
if test "$enable_shared" = "yes"; then
|
||
|
-# When building a shared libopcodes, link against the pic version of libiberty
|
||
|
-# so that apps that use libopcodes won't need libiberty just to satisfy any
|
||
|
-# libopcodes references.
|
||
|
-# We can't do that if a pic libiberty is unavailable since including non-pic
|
||
|
-# code would insert text relocations into libopcodes.
|
||
|
# Note that linking against libbfd as we do here, which is itself linked
|
||
|
# against libiberty, may not satisfy all the libopcodes libiberty references
|
||
|
# since libbfd may not pull in the entirety of libiberty.
|
||
|
-changequote(,)dnl
|
||
|
- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
|
||
|
-changequote([,])dnl
|
||
|
- if test -n "$x"; then
|
||
|
- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
|
||
|
- fi
|
||
|
-
|
||
|
case "${host}" in
|
||
|
*-*-cygwin*)
|
||
|
SHARED_LDFLAGS="-no-undefined"
|
||
|
- SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin"
|
||
|
+ SHARED_LIBADD="-lbfd -liberty -lintl -lcygwin"
|
||
|
;;
|
||
|
- *-*-darwin*)
|
||
|
- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}"
|
||
|
- SHARED_DEPENDENCIES="../bfd/libbfd.la"
|
||
|
- ;;
|
||
|
*)
|
||
|
- case "$host_vendor" in
|
||
|
- hp)
|
||
|
- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.sl ${SHARED_LIBADD}"
|
||
|
- ;;
|
||
|
- *)
|
||
|
- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.so ${SHARED_LIBADD}"
|
||
|
- ;;
|
||
|
- esac
|
||
|
- SHARED_DEPENDENCIES="../bfd/libbfd.la"
|
||
|
+ SHARED_LIBADD="-lbfd ${SHARED_LIBADD}"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
--
|
||
|
2.14.2
|
||
|
|