Merge pull request #211126 from trofi/binutils-update
binutils: 2.39 -> 2.40
This commit is contained in:
commit
0ba9da441d
18 changed files with 96 additions and 318 deletions
|
@ -5,6 +5,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libpfm
|
, libpfm
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -191,7 +192,7 @@ in stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals isDarwin [
|
] ++ optionals isDarwin [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libpfm
|
, libpfm
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -203,7 +204,7 @@ in stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals isDarwin [
|
] ++ optionals isDarwin [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libpfm
|
, libpfm
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -191,7 +192,7 @@ in stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals isDarwin [
|
] ++ optionals isDarwin [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libxml2
|
, libxml2
|
||||||
, ncurses
|
, ncurses
|
||||||
|
@ -168,10 +169,9 @@ stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
]
|
] ++ lib.optionals (enableGoldPlugin) [
|
||||||
++ lib.optional (!isDarwin)
|
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
++ lib.optionals (isDarwin) [
|
] ++ lib.optionals (isDarwin) [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
"-DCAN_TARGET_i386=false"
|
"-DCAN_TARGET_i386=false"
|
||||||
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libxml2
|
, libxml2
|
||||||
, ncurses
|
, ncurses
|
||||||
|
@ -162,7 +163,7 @@ stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals (isDarwin) [
|
] ++ optionals (isDarwin) [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libpfm
|
, libpfm
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -180,7 +181,7 @@ in stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals (isDarwin) [
|
] ++ optionals (isDarwin) [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libpfm
|
, libpfm
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -173,7 +174,7 @@ in stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals (isDarwin) [
|
] ++ optionals (isDarwin) [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libpfm
|
, libpfm
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -188,7 +189,7 @@ in stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals (isDarwin) [
|
] ++ optionals (isDarwin) [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
, cmake
|
, cmake
|
||||||
, python3
|
, python3
|
||||||
, libffi
|
, libffi
|
||||||
|
, enableGoldPlugin ? (!stdenv.isDarwin && !stdenv.targetPlatform.isWasi)
|
||||||
, libbfd
|
, libbfd
|
||||||
, libpfm
|
, libpfm
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -151,7 +152,7 @@ in stdenv.mkDerivation (rec {
|
||||||
"-DSPHINX_OUTPUT_MAN=ON"
|
"-DSPHINX_OUTPUT_MAN=ON"
|
||||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||||
] ++ optionals (!isDarwin) [
|
] ++ optionals (enableGoldPlugin) [
|
||||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||||
] ++ optionals isDarwin [
|
] ++ optionals isDarwin [
|
||||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||||
|
|
|
@ -1,155 +0,0 @@
|
||||||
diff --git a/bfd/configure.ac b/bfd/configure.ac
|
|
||||||
index fec067b2135..377e1f5443f 100644
|
|
||||||
--- a/bfd/configure.ac
|
|
||||||
+++ b/bfd/configure.ac
|
|
||||||
@@ -292,30 +292,16 @@ 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
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
SHARED_LIBADD="$SHARED_LIBADD $LIBINTL"
|
|
||||||
|
|
||||||
-if test "$enable_shared" = "yes"; then
|
|
||||||
case "${host}" in
|
|
||||||
# More hacks to build DLLs on Windows.
|
|
||||||
*-*-cygwin*)
|
|
||||||
SHARED_LDFLAGS="-no-undefined"
|
|
||||||
- SHARED_LIBADD="-L`pwd`/../libiberty -liberty $SHARED_LIBADD -lcygwin -lkernel32"
|
|
||||||
+ SHARED_LIBADD="-liberty $SHARED_LIBADD -lcygwin -lkernel32"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
|
|
||||||
index 0e04b4c05c4..848a02662e7 100644
|
|
||||||
--- a/opcodes/Makefile.am
|
|
||||||
+++ b/opcodes/Makefile.am
|
|
||||||
@@ -51,7 +51,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
|
|
||||||
@@ -327,9 +327,18 @@ libopcodes_la_SOURCES = dis-buf.c disassemble.c dis-init.c
|
|
||||||
-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 e564f067334..5da62a3d58b 100644
|
|
||||||
--- a/opcodes/configure.ac
|
|
||||||
+++ b/opcodes/configure.ac
|
|
||||||
@@ -98,6 +98,8 @@ BFD_64_BIT
|
|
||||||
AC_SUBST(HDEFINES)
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
|
|
||||||
+GCC_HEADER_STDINT(bfd_stdint.h)
|
|
||||||
+
|
|
||||||
AC_CHECK_DECLS([basename, stpcpy])
|
|
||||||
|
|
||||||
# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
|
|
||||||
@@ -148,44 +150,21 @@ 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.
|
|
||||||
# Also, jam libintl into the right place in all of this: after libiberty,
|
|
||||||
# which uses it, but before -lcygwin, which it uses.
|
|
||||||
-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
|
|
||||||
-fi
|
|
||||||
|
|
||||||
SHARED_LIBADD="$SHARED_LIBADD $LIBINTL"
|
|
||||||
|
|
||||||
@@ -193,11 +172,10 @@ if test "$enable_shared" = "yes"; then
|
|
||||||
case "${host}" in
|
|
||||||
*-*-cygwin*)
|
|
||||||
SHARED_LDFLAGS="-no-undefined"
|
|
||||||
- SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty $SHARED_LIBADD"
|
|
||||||
+ SHARED_LIBADD="-lbfd -liberty $SHARED_LIBADD"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
- SHARED_LIBADD="../bfd/libbfd.la ${SHARED_LIBADD}"
|
|
||||||
- SHARED_DEPENDENCIES="../bfd/libbfd.la"
|
|
||||||
+ SHARED_LIBADD="-lbfd ${SHARED_LIBADD}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
|
@ -31,12 +31,12 @@ assert enableGold -> withGold stdenv.targetPlatform;
|
||||||
let
|
let
|
||||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||||
|
|
||||||
version = "2.39";
|
version = "2.40";
|
||||||
|
|
||||||
srcs = {
|
srcs = {
|
||||||
normal = fetchurl {
|
normal = fetchurl {
|
||||||
url = "mirror://gnu/binutils/binutils-${version}.tar.bz2";
|
url = "mirror://gnu/binutils/binutils-${version}.tar.bz2";
|
||||||
sha256 = "sha256-2iSoT+8iAQLdJAQt8G/eqFHCYUpTd/hu/6KPM7exYUg=";
|
hash = "sha256-+CmOsVOks30RLpRapcsoUAQLzyaj6mW1pxXIOv4F5Io=";
|
||||||
};
|
};
|
||||||
vc4-none = fetchFromGitHub {
|
vc4-none = fetchFromGitHub {
|
||||||
owner = "itszor";
|
owner = "itszor";
|
||||||
|
@ -84,12 +84,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
# cross-compiling.
|
# cross-compiling.
|
||||||
./always-search-rpath.patch
|
./always-search-rpath.patch
|
||||||
|
|
||||||
# Upstream backport of https://sourceware.org/PR29451:
|
# Avoid `lib -> out -> lib` reference. Normally `bfd-plugins` does
|
||||||
# Don't emit 0-sized debug entries for objects without size.
|
# not need to know binutils' BINDIR at all. It's an absolute path
|
||||||
# Without the change elfutils on i686-linux fail dwarf validity test:
|
# where libraries are stored.
|
||||||
# https://sourceware.org/PR29450
|
./plugins-no-BINDIR.patch
|
||||||
# Remove once 2.40 releases.
|
|
||||||
./gas-dwarf-zero-PR29451.patch
|
|
||||||
]
|
]
|
||||||
++ lib.optional targetPlatform.isiOS ./support-ios.patch
|
++ lib.optional targetPlatform.isiOS ./support-ios.patch
|
||||||
# Adds AVR-specific options to "size" for compatibility with Atmel's downstream distribution
|
# Adds AVR-specific options to "size" for compatibility with Atmel's downstream distribution
|
||||||
|
@ -105,7 +103,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
else ./mips64-default-n64.patch)
|
else ./mips64-default-n64.patch)
|
||||||
;
|
;
|
||||||
|
|
||||||
outputs = [ "out" "info" "man" ];
|
outputs = [ "out" "info" "man" "dev" ]
|
||||||
|
# Ideally we would like to always install 'lib' into a separate
|
||||||
|
# target. Unfortunately cross-compiled binutils installs libraries
|
||||||
|
# across both `$lib/lib/` and `$out/$target/lib` with a reference
|
||||||
|
# from $out to $lib. Probably a binutils bug: all libraries should go
|
||||||
|
# to $lib as binutils does not build target libraries. Let's make our
|
||||||
|
# life slightly simpler by installing everything into $out for
|
||||||
|
# cross-binutils.
|
||||||
|
++ lib.optionals (targetPlatform == hostPlatform) [ "lib" ];
|
||||||
|
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
@ -196,8 +202,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
|
|
||||||
# Unconditionally disable:
|
# Unconditionally disable:
|
||||||
# - musl target needs porting: https://sourceware.org/PR29477
|
# - musl target needs porting: https://sourceware.org/PR29477
|
||||||
# - all targets rely on javac: https://sourceware.org/PR29479
|
|
||||||
"--disable-gprofng"
|
"--disable-gprofng"
|
||||||
|
|
||||||
|
# By default binutils searches $libdir for libraries. This brings in
|
||||||
|
# libbfd and libopcodes into a default visibility. Drop default lib
|
||||||
|
# path to force users to declare their use of these libraries.
|
||||||
|
"--with-lib-path=:"
|
||||||
]
|
]
|
||||||
++ lib.optionals withAllTargets [ "--enable-targets=all" ]
|
++ lib.optionals withAllTargets [ "--enable-targets=all" ]
|
||||||
++ lib.optionals enableGold [ "--enable-gold" "--enable-plugins" ]
|
++ lib.optionals enableGold [ "--enable-gold" "--enable-plugins" ]
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=d7abcbcea5ddd40a3bf28758b62f35933c59f996
|
|
||||||
|
|
||||||
Don't emit 0-sized debug entries for objects without size.
|
|
||||||
Without the change elfutils on i686-linux fail dwarf validity test:
|
|
||||||
https://sourceware.org/PR29450
|
|
||||||
--- a/gas/dwarf2dbg.c
|
|
||||||
+++ b/gas/dwarf2dbg.c
|
|
||||||
@@ -2882,6 +2882,7 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
{
|
|
||||||
const char *name;
|
|
||||||
size_t len;
|
|
||||||
+ expressionS size = { .X_op = O_constant };
|
|
||||||
|
|
||||||
/* Skip warning constructs (see above). */
|
|
||||||
if (symbol_get_bfdsym (symp)->flags & BSF_WARNING)
|
|
||||||
@@ -2895,6 +2896,18 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
if (!S_IS_DEFINED (symp) || !S_IS_FUNCTION (symp))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
+#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */
|
|
||||||
+ size.X_add_number = S_GET_SIZE (symp);
|
|
||||||
+ if (size.X_add_number == 0 && IS_ELF
|
|
||||||
+ && symbol_get_obj (symp)->size != NULL)
|
|
||||||
+ {
|
|
||||||
+ size.X_op = O_add;
|
|
||||||
+ size.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ if (size.X_op == O_constant && size.X_add_number == 0)
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
subseg_set (str_seg, 0);
|
|
||||||
name_sym = symbol_temp_new_now_octets ();
|
|
||||||
name = S_GET_NAME (symp);
|
|
||||||
@@ -2920,29 +2933,17 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
emit_expr (&exp, sizeof_address);
|
|
||||||
|
|
||||||
/* DW_AT_high_pc */
|
|
||||||
- exp.X_op = O_constant;
|
|
||||||
-#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */
|
|
||||||
- exp.X_add_number = S_GET_SIZE (symp);
|
|
||||||
- if (exp.X_add_number == 0 && IS_ELF
|
|
||||||
- && symbol_get_obj (symp)->size != NULL)
|
|
||||||
- {
|
|
||||||
- exp.X_op = O_add;
|
|
||||||
- exp.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size);
|
|
||||||
- }
|
|
||||||
-#else
|
|
||||||
- exp.X_add_number = 0;
|
|
||||||
-#endif
|
|
||||||
if (DWARF2_VERSION < 4)
|
|
||||||
{
|
|
||||||
- if (exp.X_op == O_constant)
|
|
||||||
- exp.X_op = O_symbol;
|
|
||||||
- exp.X_add_symbol = symp;
|
|
||||||
- emit_expr (&exp, sizeof_address);
|
|
||||||
+ if (size.X_op == O_constant)
|
|
||||||
+ size.X_op = O_symbol;
|
|
||||||
+ size.X_add_symbol = symp;
|
|
||||||
+ emit_expr (&size, sizeof_address);
|
|
||||||
}
|
|
||||||
- else if (exp.X_op == O_constant)
|
|
||||||
- out_uleb128 (exp.X_add_number);
|
|
||||||
+ else if (size.X_op == O_constant)
|
|
||||||
+ out_uleb128 (size.X_add_number);
|
|
||||||
else
|
|
||||||
- emit_leb128_expr (symbol_get_value_expression (exp.X_op_symbol), 0);
|
|
||||||
+ emit_leb128_expr (symbol_get_value_expression (size.X_op_symbol), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* End of children. */
|
|
|
@ -1,45 +1,22 @@
|
||||||
{ lib, stdenv
|
{ lib, stdenv
|
||||||
, buildPackages
|
, binutils-unwrapped-all-targets
|
||||||
, gnu-config, autoreconfHook, bison, binutils-unwrapped, texinfo
|
|
||||||
, libiberty, libintl, zlib
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "libbfd";
|
pname = "libbfd";
|
||||||
inherit (binutils-unwrapped) version src;
|
inherit (binutils-unwrapped-all-targets) version;
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
dontUnpack = true;
|
||||||
|
dontBuild = true;
|
||||||
patches = binutils-unwrapped.patches ++ [
|
dontInstall = true;
|
||||||
./build-components-separately.patch
|
propagatedBuildInputs = [
|
||||||
|
binutils-unwrapped-all-targets.dev
|
||||||
|
binutils-unwrapped-all-targets.lib
|
||||||
];
|
];
|
||||||
|
|
||||||
# We just want to build libbfd
|
passthru = {
|
||||||
postPatch = ''
|
dev = binutils-unwrapped-all-targets.dev;
|
||||||
cd bfd
|
};
|
||||||
'';
|
|
||||||
|
|
||||||
postAutoreconf = ''
|
|
||||||
echo "Updating config.guess and config.sub from ${gnu-config}"
|
|
||||||
cp -f ${gnu-config}/config.{guess,sub} ../
|
|
||||||
'';
|
|
||||||
|
|
||||||
# We update these ourselves
|
|
||||||
dontUpdateAutotoolsGnuConfigScripts = true;
|
|
||||||
|
|
||||||
strictDeps = true;
|
|
||||||
nativeBuildInputs = [ autoreconfHook bison texinfo ];
|
|
||||||
buildInputs = [ libiberty zlib ] ++ lib.optionals stdenv.isDarwin [ libintl ];
|
|
||||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
|
||||||
|
|
||||||
configurePlatforms = [ "build" "host" ];
|
|
||||||
configureFlags = [
|
|
||||||
"--enable-targets=all" "--enable-64-bit-bfd"
|
|
||||||
"--enable-install-libbfd"
|
|
||||||
"--with-system-zlib"
|
|
||||||
] ++ lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared";
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A library for manipulating containers of machine code";
|
description = "A library for manipulating containers of machine code";
|
||||||
|
|
|
@ -1,38 +1,22 @@
|
||||||
{ lib, stdenv, buildPackages
|
{ lib, stdenv
|
||||||
, autoreconfHook, bison, binutils-unwrapped
|
, binutils-unwrapped-all-targets
|
||||||
, libiberty, libbfd
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "libopcodes";
|
pname = "libopcodes";
|
||||||
inherit (binutils-unwrapped) version src;
|
inherit (binutils-unwrapped-all-targets) version;
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
dontUnpack = true;
|
||||||
|
dontBuild = true;
|
||||||
patches = binutils-unwrapped.patches ++ [
|
dontInstall = true;
|
||||||
./build-components-separately.patch
|
propagatedBuildInputs = [
|
||||||
|
binutils-unwrapped-all-targets.dev
|
||||||
|
binutils-unwrapped-all-targets.lib
|
||||||
];
|
];
|
||||||
|
|
||||||
# We just want to build libopcodes
|
passthru = {
|
||||||
postPatch = ''
|
dev = binutils-unwrapped-all-targets.dev;
|
||||||
cd opcodes
|
};
|
||||||
find . ../include/opcode -type f -exec sed {} -i -e 's/"bfd.h"/<bfd.h>/' \;
|
|
||||||
'';
|
|
||||||
|
|
||||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
|
||||||
nativeBuildInputs = [ autoreconfHook bison ];
|
|
||||||
buildInputs = [ libiberty ];
|
|
||||||
# dis-asm.h includes bfd.h
|
|
||||||
propagatedBuildInputs = [ libbfd ];
|
|
||||||
|
|
||||||
configurePlatforms = [ "build" "host" ];
|
|
||||||
configureFlags = [
|
|
||||||
"--enable-targets=all" "--enable-64-bit-bfd"
|
|
||||||
"--enable-install-libbfd"
|
|
||||||
"--enable-shared"
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A library from binutils for manipulating machine code";
|
description = "A library from binutils for manipulating machine code";
|
||||||
|
|
25
pkgs/development/tools/misc/binutils/plugins-no-BINDIR.patch
Normal file
25
pkgs/development/tools/misc/binutils/plugins-no-BINDIR.patch
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
Avoid `lib -> out -> lib` reference. Normally `bfd-plugins` does not
|
||||||
|
need to know binutils' BINDIR at all. It's an absolute path where
|
||||||
|
libraries are stored.
|
||||||
|
--- a/bfd/plugin.c
|
||||||
|
+++ b/bfd/plugin.c
|
||||||
|
@@ -493,7 +493,7 @@ build_plugin_list (bfd *abfd)
|
||||||
|
when configuring binutils using --libdir. Search in the proper
|
||||||
|
path first, then the old one for backwards compatibility. */
|
||||||
|
static const char *path[]
|
||||||
|
- = { LIBDIR "/bfd-plugins", BINDIR "/../lib/bfd-plugins" };
|
||||||
|
+ = { LIBDIR "/bfd-plugins", };
|
||||||
|
struct stat last_st;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
@@ -508,9 +508,7 @@ build_plugin_list (bfd *abfd)
|
||||||
|
last_st.st_ino = 0;
|
||||||
|
for (i = 0; i < sizeof (path) / sizeof (path[0]); i++)
|
||||||
|
{
|
||||||
|
- char *plugin_dir = make_relative_prefix (plugin_program_name,
|
||||||
|
- BINDIR,
|
||||||
|
- path[i]);
|
||||||
|
+ char *plugin_dir = xstrdup (path[i]);
|
||||||
|
if (plugin_dir)
|
||||||
|
{
|
||||||
|
struct stat st;
|
|
@ -2,11 +2,14 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pahole";
|
pname = "pahole";
|
||||||
version = "1.24";
|
# Need a revision that supports DW_TAG_unspecified_type(0x3b).
|
||||||
|
# Was added after 1.24 release in a series of changes.
|
||||||
|
# Can switch back to release tags once 1.25 is cut.
|
||||||
|
version = "1.24-unstable-2022-11-24";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git";
|
url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git";
|
||||||
rev = "v${version}";
|
rev = "02d67c51765dfbd5893087da63744c864c7cc9e0";
|
||||||
sha256 = "sha256-OPseVKt5kIKgK096+ufKrWMS1E/7Z0uxNqCMN6wKfKg=";
|
hash = "sha256-hKc8UKxPtEM2zlYmolSt1pXJKNRt4wC/Uf+dP/Sb7+s=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
|
|
@ -737,6 +737,7 @@ rec {
|
||||||
pcre.out
|
pcre.out
|
||||||
gettext
|
gettext
|
||||||
binutils.bintools
|
binutils.bintools
|
||||||
|
binutils.bintools.lib
|
||||||
darwin.binutils
|
darwin.binutils
|
||||||
darwin.binutils.bintools
|
darwin.binutils.bintools
|
||||||
curl.out
|
curl.out
|
||||||
|
|
|
@ -17140,13 +17140,9 @@ with pkgs;
|
||||||
libc = preLibcCrossHeaders;
|
libc = preLibcCrossHeaders;
|
||||||
};
|
};
|
||||||
|
|
||||||
libbfd = callPackage ../development/tools/misc/binutils/libbfd.nix {
|
libbfd = callPackage ../development/tools/misc/binutils/libbfd.nix { };
|
||||||
autoreconfHook = buildPackages.autoreconfHook269;
|
|
||||||
};
|
|
||||||
|
|
||||||
libopcodes = callPackage ../development/tools/misc/binutils/libopcodes.nix {
|
libopcodes = callPackage ../development/tools/misc/binutils/libopcodes.nix { };
|
||||||
autoreconfHook = buildPackages.autoreconfHook269;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Held back 2.38 release. Remove once all dependencies are ported to 2.39.
|
# Held back 2.38 release. Remove once all dependencies are ported to 2.39.
|
||||||
binutils-unwrapped_2_38 = callPackage ../development/tools/misc/binutils/2.38 {
|
binutils-unwrapped_2_38 = callPackage ../development/tools/misc/binutils/2.38 {
|
||||||
|
|
Loading…
Reference in a new issue