Compare commits

...

37 Commits
master ... 1.12

Author SHA1 Message Date
Yann E. MORIN" 66376a9d5b 1.12: close branch 11 years ago
Yann E. MORIN" 319f786bda 1.12: update version to 1.12.4+hg 11 years ago
Yann E. MORIN" 7882899bd1 Tagging release 1.12.4 11 years ago
Yann E. MORIN" 142358f342 1.12: update version to 1.12.4 11 years ago
Yann E. MORIN" 3714ada819 libc/glibc: run ./configure in CONFIG_SHELL 11 years ago
Yann E. MORIN" f68c40aa08 complibs/cloog: catch autogen.sh's output 11 years ago
Yann E. MORIN" 13b77146e7 binutils/binutils: ensure gold is staticaly-linked if needed 11 years ago
Michael Hope 1057a15040 Pass CXXFLAGS to binutils/gold. 11 years ago
Yann E. MORIN" 68c0a3bc7b 1.12: update version to 1.12.3+hg 12 years ago
Yann E. MORIN" 92cc5efcd4 Tagging release 1.12.3 12 years ago
Yann E. MORIN" 993be07897 1.12: update version to 1.12.3 12 years ago
Yann E. MORIN" 6f31c85b0c kernel/linux: add alternate download locations 12 years ago
Yann E. MORIN" 1aca518220 docs/known-issues: add the infamous "mixed implicit and normal rules" 12 years ago
Yann E. MORIN" 389a779657 binutils/binutils: fixup version strings 12 years ago
Yann E. MORIN" 639b71de0f binutils/binutils: fixup version strings 12 years ago
Yann E. MORIN" 65da1e8e62 debug/gdb: rename patch directories 12 years ago
Yann E. MORIN" e2bea43543 1.12: update version to 1.12.2+hg 12 years ago
Yann E. MORIN" 4285523727 Tagging release 1.12.2 12 years ago
Yann E. MORIN" 85d027024c 1.12: update version to 1.12.2 12 years ago
Yann E. MORIN" 6368b03acd debug/gdb: update the version strings 12 years ago
Yann E. MORIN" 8764d8089b scripts: fix sysroot prefix dir 12 years ago
Yann E. MORIN" 3bcc156ec0 1.12: update version to 1.12.1+hg 12 years ago
Yann E. MORIN" 941954b514 Tagging release 1.12.1 12 years ago
Yann E. MORIN" 3b8612e225 1.12: update version to 1.12.1 12 years ago
Titus von Boxberg 3bd14bf2f0 debug/ltrace: Fix HOST_OS and ar 12 years ago
Titus von Boxberg 31fb617ab2 debug/gdb: correct compilation error when stpcpy is a define 12 years ago
Titus von Boxberg 091a539c8b libc/uClibc: portability fixes to install_headers 12 years ago
Titus von Boxberg 389450ecd0 configure: require libtoolize, create wrapper to it 12 years ago
Titus von Boxberg e9798b8521 configure: fix --with-prog=[...] 12 years ago
Titus von Boxberg 149067397e complibs/libelf: use target ranlib 12 years ago
Yann E. MORIN" 5cda934d4b debug/gdb: we don't care if the host tic is shared or static 12 years ago
Yann E. MORIN" 6fc6d842e8 scripts: simplify and fix the toolchain config script 12 years ago
Yann E. MORIN" ead6c9b861 libc/uClibc: force use of ctor/dtor 12 years ago
Yann E. MORIN" cc415201db configure: more autostuff compatibility 12 years ago
Yann E. MORIN" 476d678537 1.12: update version to 1.12.0+hg 12 years ago
Yann E. MORIN" 2e6471f608 Tagging release 1.12.0 12 years ago
Yann E. MORIN" 022107cb7d 1.12: create maintenance branch, update version to 1.12.0 12 years ago
  1. 5
      .hgtags
  2. 2
      .version
  3. 22
      Makefile.in
  4. 49
      config/binutils/binutils.in
  5. 30
      config/debug/gdb.in
  6. 7
      configure
  7. 28
      docs/B - Known issues.txt
  8. 0
      patches/binutils/2.16.1a/100-bfd-hash-tweak.patch
  9. 0
      patches/binutils/2.16.1a/110-psignal.patch
  10. 0
      patches/binutils/2.16.1a/120-skip-comments.patch
  11. 0
      patches/binutils/2.16.1a/130-callahan.patch
  12. 0
      patches/binutils/2.16.1a/140-cross-gprof.patch
  13. 0
      patches/binutils/2.16.1a/150-stabs-tweak.patch
  14. 0
      patches/binutils/2.16.1a/160-i386-no-divide-comment.patch
  15. 0
      patches/binutils/2.17a/100-uclibc-conf.patch
  16. 0
      patches/binutils/2.17a/110-arm-eabi-conf.patch
  17. 0
      patches/binutils/2.17a/120-makeinfo-version.patch
  18. 0
      patches/binutils/2.17a/130-ld_makefile_patch.patch
  19. 0
      patches/binutils/2.17a/140-better_file_error.patch
  20. 0
      patches/binutils/2.17a/150-check_ldrunpath_length.patch
  21. 0
      patches/binutils/2.17a/160-mips-ELF_MAXPAGESIZE-4K.patch
  22. 0
      patches/binutils/2.17a/170-bfd-hash-tweak.patch
  23. 0
      patches/binutils/2.17a/180-psignal.patch
  24. 0
      patches/binutils/2.17a/190-skip-comments.patch
  25. 0
      patches/binutils/2.17a/200-cross-gprof.patch
  26. 0
      patches/binutils/2.17a/210-i386-no-divide-comment.patch
  27. 0
      patches/binutils/2.18a/100-makeinfo-version.patch
  28. 0
      patches/binutils/2.18a/110-enable-dash-v2.patch
  29. 0
      patches/binutils/2.18a/120-i386-no-divide-comment.patch
  30. 0
      patches/binutils/2.18a/130-avr32-atmel-v1.0.1.patch
  31. 0
      patches/binutils/2.19.1a/100-ppc64-pie.patch
  32. 0
      patches/binutils/2.19.1a/110-RPATH_ENVVAR-smack.patch
  33. 0
      patches/binutils/2.19.1a/120-sh-targets.patch
  34. 0
      patches/binutils/2.19.1a/130-check_ldrunpath_length.patch
  35. 0
      patches/binutils/2.19.1a/140-pt-pax-flags-20081101.patch
  36. 0
      patches/binutils/2.19.1a/150-warn-textrel.patch
  37. 0
      patches/binutils/2.19.1a/160-use-new-ld-dtags.patch
  38. 0
      patches/binutils/2.19.1a/170-use-relro.patch
  39. 0
      patches/binutils/2.19.1a/180-libiberty-pic.patch
  40. 0
      patches/binutils/2.19.1a/190-mips64-defaultemul.patch
  41. 20
      patches/binutils/2.19/100-ppc64-pie.patch
  42. 17
      patches/binutils/2.19/110-RPATH_ENVVAR-smack.patch
  43. 52
      patches/binutils/2.19/120-sh-targets.patch
  44. 31
      patches/binutils/2.19/130-check_ldrunpath_length.patch
  45. 249
      patches/binutils/2.19/140-pt-pax-flags-20081101.patch
  46. 48
      patches/binutils/2.19/150-warn-textrel.patch
  47. 14
      patches/binutils/2.19/160-use-new-ld-dtags.patch
  48. 14
      patches/binutils/2.19/170-use-relro.patch
  49. 14
      patches/binutils/2.19/180-libiberty-pic.patch
  50. 0
      patches/binutils/2.20.1a/100-ppc64-pie.patch
  51. 0
      patches/binutils/2.20.1a/110-RPATH_ENVVAR-smack.patch
  52. 0
      patches/binutils/2.20.1a/120-sh-targets.patch
  53. 0
      patches/binutils/2.20.1a/130-ld-sysroot.patch
  54. 0
      patches/binutils/2.20.1a/140-check_ldrunpath_length.patch
  55. 0
      patches/binutils/2.20.1a/150-pt-pax-flags-20090909.patch
  56. 0
      patches/binutils/2.20.1a/160-amd64-32bit-path.patch
  57. 0
      patches/binutils/2.20.1a/170-warn-textrel.patch
  58. 0
      patches/binutils/2.20.1a/190-use-new-ld-dtags.patch
  59. 0
      patches/binutils/2.20.1a/200-document-new-dtags-behaviour.patch
  60. 0
      patches/binutils/2.20.1a/220-use-relro.patch
  61. 0
      patches/binutils/2.20.1a/230-libiberty-pic.patch
  62. 0
      patches/binutils/2.20.1a/240-ld_makefile.patch
  63. 0
      patches/binutils/2.20.1a/250-arm-eabi-conf.patch
  64. 0
      patches/binutils/2.20.1a/270-better_file_error.patch
  65. 0
      patches/binutils/2.20.1a/280-unexport_LD_LIBRARY_PATH.patch
  66. 0
      patches/binutils/2.20.1a/290-ld-stub-crash.patch
  67. 0
      patches/binutils/2.20.1a/300-mips64-defaultemul.patch
  68. 16
      patches/binutils/2.20/100-ppc64-pie.patch
  69. 13
      patches/binutils/2.20/110-RPATH_ENVVAR-smack.patch
  70. 40
      patches/binutils/2.20/120-sh-targets.patch
  71. 36
      patches/binutils/2.20/130-ld-sysroot.patch
  72. 47
      patches/binutils/2.20/140-check_ldrunpath_length.patch
  73. 238
      patches/binutils/2.20/150-pt-pax-flags-20090909.patch
  74. 16
      patches/binutils/2.20/160-amd64-32bit-path.patch
  75. 59
      patches/binutils/2.20/170-warn-textrel.patch
  76. 25
      patches/binutils/2.20/180-only-use-new-ld-dtags.patch.disabled
  77. 10
      patches/binutils/2.20/190-use-new-ld-dtags.patch
  78. 16
      patches/binutils/2.20/200-document-new-dtags-behaviour.patch
  79. 6
      patches/binutils/2.20/220-use-relro.patch
  80. 10
      patches/binutils/2.20/230-libiberty-pic.patch
  81. 25
      patches/binutils/2.20/240-ld_makefile.patch
  82. 24
      patches/binutils/2.20/250-arm-eabi-conf.patch
  83. 18
      patches/binutils/2.20/260-arm-non-empty-know.patch
  84. 43
      patches/binutils/2.20/270-better_file_error.patch
  85. 95
      patches/binutils/2.20/280-unexport_LD_LIBRARY_PATH.patch
  86. 22
      patches/binutils/2.20/290-ld-stub-crash.patch
  87. 18
      patches/binutils/2.20/300-mips64-defaultemul.patch
  88. 0
      patches/gdb/6.8a/100-dwarf-stack-overflow.patch
  89. 0
      patches/gdb/6.8a/110-security-errata-20050610.patch
  90. 0
      patches/gdb/6.8a/120-tdep-opcode-include-workaround.patch
  91. 0
      patches/gdb/6.8a/130-reg-no-longer-active.patch
  92. 0
      patches/gdb/6.8a/140-sim-ppc-have-config-h.patch
  93. 12
      patches/gdb/6.8a/150-handle-stpcpy-define.patch
  94. 0
      patches/gdb/7.0.1a/100-sim-ppc-have-config-h.patch
  95. 0
      patches/gdb/7.0a/100-sim-ppc-have-config-h.patch
  96. 0
      patches/gdb/7.2a/100-sim-ppc-lz-fix.patch
  97. 12
      patches/ltrace/0.5.3/180-libltrace-genindex.patch
  98. 24
      patches/ltrace/0.5.3/190-ar-configurable.patch
  99. 18
      patches/ltrace/0.5.3/200-configure-hostos.patch
  100. 29
      patches/uClibc/0.9.30/200-getline-already-declared.patch
  101. Some files were not shown because too many files have changed in this diff Show More

5
.hgtags

@ -30,3 +30,8 @@ c71b4f4da4b46aa83e6c013208731edfffd249a1 crosstool-ng-0.0.4
ce34b7cd6509906de6885c084dbef7ddecd603c6 crosstool-ng-1.1.3a
e016efb7036c14f86e1592114e621cfadeaf714c crosstool-ng-0.0.2
fec15dd785b1ab52e15a350665362c3f58852931 crosstool-ng-0.1.0
7c5f0c6ddac13045699a7f3ee0b3ed99d1400b00 crosstool-ng-1.12.0
60c322256b088bf9808f50b5252b767099738993 crosstool-ng-1.12.1
16b449fbf7db72a45d4bb1c7c5c10669249e2b07 crosstool-ng-1.12.2
8cc034806770a56af3abbaa3a896e6358e9ae90d crosstool-ng-1.12.3
e0515720eee4c4402f09f55a41fc99ffebd153db crosstool-ng-1.12.4

2
.version

@ -1 +1 @@
hg
1.12.4+hg

22
Makefile.in

@ -47,16 +47,17 @@ DATE := @@DATE@@
LOCAL := @@LOCAL@@
# Paths found by ./configure
install:= @@install@@
bash := @@bash@@
grep := @@grep@@
make := @@make@@
sed := @@sed@@
libtool:= @@libtool@@
objcopy:= @@objcopy@@
objdump:= @@objdump@@
readelf:= @@readelf@@
patch := @@patch@@
install := @@install@@
bash := @@bash@@
grep := @@grep@@
make := @@make@@
sed := @@sed@@
libtool := @@libtool@@
libtoolize:= @@libtoolize@@
objcopy := @@objcopy@@
objdump := @@objdump@@
readelf := @@readelf@@
patch := @@patch@@
# config options to push down to kconfig
KCONFIG:= @@KCONFIG@@
@ -164,6 +165,7 @@ paths.mk: FORCE
echo "export make=$(make)"; \
echo "export sed=$(sed)"; \
echo "export libtool=$(libtool)"; \
echo "export libtoolize=$(libtoolize)"; \
echo "export objcopy=$(objcopy)"; \
echo "export objdump=$(objdump)"; \
echo "export readelf=$(readelf)"; \

49
config/binutils/binutils.in

@ -8,45 +8,29 @@ choice
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config BINUTILS_V_2_21
config BINUTILS_V_2_20_1a
bool
depends on EXPERIMENTAL
prompt "2.21"
select BINUTILS_2_21_or_later
config BINUTILS_V_2_20_1
bool
prompt "2.20.1"
prompt "2.20.1a"
select BINUTILS_2_20_or_later
config BINUTILS_V_2_20
bool
prompt "2.20"
select BINUTILS_2_20_or_later
config BINUTILS_V_2_19_1
bool
prompt "2.19.1"
select BINUTILS_2_19_or_later
config BINUTILS_V_2_19
config BINUTILS_V_2_19_1a
bool
prompt "2.19"
prompt "2.19.1a"
select BINUTILS_2_19_or_later
config BINUTILS_V_2_18
config BINUTILS_V_2_18a
bool
prompt "2.18"
prompt "2.18a"
select BINUTILS_2_18_or_later
config BINUTILS_V_2_17
config BINUTILS_V_2_17a
bool
prompt "2.17 (OBSOLETE)"
prompt "2.17a (OBSOLETE)"
depends on OBSOLETE
config BINUTILS_V_2_16_1
config BINUTILS_V_2_16_1a
bool
prompt "2.16.1 (OBSOLETE)"
prompt "2.16.1a (OBSOLETE)"
depends on OBSOLETE
endchoice
@ -55,14 +39,11 @@ config BINUTILS_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2.21" if BINUTILS_V_2_21
default "2.20.1" if BINUTILS_V_2_20_1
default "2.20" if BINUTILS_V_2_20
default "2.19.1" if BINUTILS_V_2_19_1
default "2.19" if BINUTILS_V_2_19
default "2.18" if BINUTILS_V_2_18
default "2.17" if BINUTILS_V_2_17
default "2.16.1" if BINUTILS_V_2_16_1
default "2.20.1a" if BINUTILS_V_2_20_1a
default "2.19.1a" if BINUTILS_V_2_19_1a
default "2.18a" if BINUTILS_V_2_18a
default "2.17a" if BINUTILS_V_2_17a
default "2.16.1a" if BINUTILS_V_2_16_1a
config BINUTILS_2_21_or_later
bool

30
config/debug/gdb.in

@ -40,33 +40,33 @@ config GDB_V_linaro_7_2_2011_05_0
depends on DEBUG_GDB_SHOW_LINARO
select GDB_7_0_or_later
config GDB_V_7_2
config GDB_V_7_2a
bool
prompt "7.2 (EXPERIMENTAL)"
prompt "7.2a (EXPERIMENTAL)"
depends on EXPERIMENTAL
select GDB_7_0_or_later
config GDB_V_7_1
config GDB_V_7_1a
bool
prompt "7.1 (EXPERIMENTAL)"
prompt "7.1a (EXPERIMENTAL)"
depends on EXPERIMENTAL
select GDB_7_0_or_later
config GDB_V_7_0_1
config GDB_V_7_0_1a
bool
prompt "7.0.1 (EXPERIMENTAL)"
prompt "7.0.1a (EXPERIMENTAL)"
depends on EXPERIMENTAL
select GDB_7_0_or_later
config GDB_V_7_0
config GDB_V_7_0a
bool
prompt "7.0 (EXPERIMENTAL)"
prompt "7.0a (EXPERIMENTAL)"
depends on EXPERIMENTAL
select GDB_7_0_or_later
config GDB_V_6_8
config GDB_V_6_8a
bool
prompt "6.8"
prompt "6.8a"
endchoice
@ -86,10 +86,10 @@ config GDB_VERSION
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "linaro-7.2-2011.05-0" if GDB_V_linaro_7_2_2011_05_0
default "7.2" if GDB_V_7_2
default "7.1" if GDB_V_7_1
default "7.0.1" if GDB_V_7_0_1
default "7.0" if GDB_V_7_0
default "6.8" if GDB_V_6_8
default "7.2a" if GDB_V_7_2a
default "7.1a" if GDB_V_7_1a
default "7.0.1a" if GDB_V_7_0_1a
default "7.0a" if GDB_V_7_0a
default "6.8a" if GDB_V_6_8a
endif

7
configure vendored

@ -171,6 +171,7 @@ check_for() {
eval val="\${${var}}"
if [ -n "${val}" ]; then
status="${val} (cached)\n"
where="${val}"
break
fi
fi
@ -348,6 +349,8 @@ while [ $# -ne 0 ]; do
--build=*|--host=*|--infodir=*|--datadir=*|--sysconfdir=*|--localstatedir=*) shift;;
--build|--host|--infodir|--datadir|--sysconfdir|--localstatedir) shift 2;;
--enable-shared|--disable-shared|--enable-static|--disable-static) shift;;
--program-prefix=*) shift;;
--program-prefix) shift 2;;
*) printf "Unrecognised option: '${1}'\n"; do_help; exit 1;;
esac
done
@ -445,6 +448,10 @@ has_or_abort prog=libtool
var=libtool \
ver='\(GNU libtool.*\) (2[[:digit:]]*\.|1\.6[[:digit:]]*\.|1\.5\.[2-9][[:digit:]]+)' \
err="'libtool' 1.5.26 or above was not found"
has_or_abort prog=libtoolize \
var=libtoolize \
ver='\(GNU libtool.*\) (2[[:digit:]]*\.|1\.6[[:digit:]]*\.|1\.5\.[2-9][[:digit:]]+)' \
err="'libtoolize' 1.5.26 or above was not found"
has_or_abort prog=stat
has_or_abort prog="curl wget"
has_or_abort prog=patch

28
docs/B - Known issues.txt

@ -197,17 +197,39 @@ Symptoms:
glibc start files and headers fail with: [/usr/include/limits.h] Error 1
Explanations:
The glibc Makefiles break with make-3.82.
Old glibc (and eglibc) Makefiles break with make-3.82.
Status:
CURRENT
Fix:
None so far. It would require some glibc hacking.
None so far. It would require some glibc/eglibc hacking.
Workaround:
There two possible workarounds:
1- ask crosstool-NG to build make-3.81 just for this build session;
1- ask crosstool-NG to build make-3.81 just for this build session:
Select the following options:
Paths and misc options --->
[*] Try features marked as EXPERIMENTAL
Companion tools --->
[*] Build some companion tools
[*] make
2- manually install make-3.81 to take precedence over the system make.
--------------------------------
Symptoms:
The build fails with "mixed implicit and normal rules. Stop."
Explanations:
Old glibc (and eglibc) Makefiles break with make-3.82.
Status:
CURRENT
Fix:
None so far. See above issue.
Workaround:
See above issue.
--------------------------------

0
patches/binutils/2.16.1/100-bfd-hash-tweak.patch → patches/binutils/2.16.1a/100-bfd-hash-tweak.patch

0
patches/binutils/2.16.1/110-psignal.patch → patches/binutils/2.16.1a/110-psignal.patch

0
patches/binutils/2.16.1/120-skip-comments.patch → patches/binutils/2.16.1a/120-skip-comments.patch

0
patches/binutils/2.16.1/130-callahan.patch → patches/binutils/2.16.1a/130-callahan.patch

0
patches/binutils/2.16.1/140-cross-gprof.patch → patches/binutils/2.16.1a/140-cross-gprof.patch

0
patches/binutils/2.16.1/150-stabs-tweak.patch → patches/binutils/2.16.1a/150-stabs-tweak.patch

0
patches/binutils/2.16.1/160-i386-no-divide-comment.patch → patches/binutils/2.16.1a/160-i386-no-divide-comment.patch

0
patches/binutils/2.17/100-uclibc-conf.patch → patches/binutils/2.17a/100-uclibc-conf.patch

0
patches/binutils/2.17/110-arm-eabi-conf.patch → patches/binutils/2.17a/110-arm-eabi-conf.patch

0
patches/binutils/2.17/120-makeinfo-version.patch → patches/binutils/2.17a/120-makeinfo-version.patch

0
patches/binutils/2.17/130-ld_makefile_patch.patch → patches/binutils/2.17a/130-ld_makefile_patch.patch

0
patches/binutils/2.17/140-better_file_error.patch → patches/binutils/2.17a/140-better_file_error.patch

0
patches/binutils/2.17/150-check_ldrunpath_length.patch → patches/binutils/2.17a/150-check_ldrunpath_length.patch

0
patches/binutils/2.17/160-mips-ELF_MAXPAGESIZE-4K.patch → patches/binutils/2.17a/160-mips-ELF_MAXPAGESIZE-4K.patch

0
patches/binutils/2.17/170-bfd-hash-tweak.patch → patches/binutils/2.17a/170-bfd-hash-tweak.patch

0
patches/binutils/2.17/180-psignal.patch → patches/binutils/2.17a/180-psignal.patch

0
patches/binutils/2.17/190-skip-comments.patch → patches/binutils/2.17a/190-skip-comments.patch

0
patches/binutils/2.17/200-cross-gprof.patch → patches/binutils/2.17a/200-cross-gprof.patch

0
patches/binutils/2.17/210-i386-no-divide-comment.patch → patches/binutils/2.17a/210-i386-no-divide-comment.patch

0
patches/binutils/2.18/100-makeinfo-version.patch → patches/binutils/2.18a/100-makeinfo-version.patch

0
patches/binutils/2.18/110-enable-dash-v2.patch → patches/binutils/2.18a/110-enable-dash-v2.patch

0
patches/binutils/2.18/120-i386-no-divide-comment.patch → patches/binutils/2.18a/120-i386-no-divide-comment.patch

0
patches/binutils/2.18/130-avr32-atmel-v1.0.1.patch → patches/binutils/2.18a/130-avr32-atmel-v1.0.1.patch

0
patches/binutils/2.19.1/100-ppc64-pie.patch → patches/binutils/2.19.1a/100-ppc64-pie.patch

0
patches/binutils/2.19.1/110-RPATH_ENVVAR-smack.patch → patches/binutils/2.19.1a/110-RPATH_ENVVAR-smack.patch

0
patches/binutils/2.19.1/120-sh-targets.patch → patches/binutils/2.19.1a/120-sh-targets.patch

0
patches/binutils/2.19.1/130-check_ldrunpath_length.patch → patches/binutils/2.19.1a/130-check_ldrunpath_length.patch

0
patches/binutils/2.19.1/140-pt-pax-flags-20081101.patch → patches/binutils/2.19.1a/140-pt-pax-flags-20081101.patch

0
patches/binutils/2.19.1/150-warn-textrel.patch → patches/binutils/2.19.1a/150-warn-textrel.patch

0
patches/binutils/2.19.1/160-use-new-ld-dtags.patch → patches/binutils/2.19.1a/160-use-new-ld-dtags.patch

0
patches/binutils/2.19.1/170-use-relro.patch → patches/binutils/2.19.1a/170-use-relro.patch

0
patches/binutils/2.19.1/180-libiberty-pic.patch → patches/binutils/2.19.1a/180-libiberty-pic.patch

0
patches/binutils/2.19.1/190-mips64-defaultemul.patch → patches/binutils/2.19.1a/190-mips64-defaultemul.patch

20
patches/binutils/2.19/100-ppc64-pie.patch

@ -1,20 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/03_all_binutils-2.15.92.0.2-ppc64-pie.patch
diff -durN binutils-2.19.orig/bfd/elf64-ppc.c binutils-2.19/bfd/elf64-ppc.c
--- binutils-2.19.orig/bfd/elf64-ppc.c 2008-10-09 14:18:24.000000000 +0200
+++ binutils-2.19/bfd/elf64-ppc.c 2008-11-23 16:16:11.000000000 +0100
@@ -11294,7 +11294,12 @@
else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf)
&& !is_opd
&& r_type != R_PPC64_TOC)
- outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
+ {
+ outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
+ if (h->elf.dynindx == -1
+ && h->elf.root.type == bfd_link_hash_undefweak)
+ memset (&outrel, 0, sizeof outrel);
+ }
else
{
/* This symbol is local, or marked to become local,

17
patches/binutils/2.19/110-RPATH_ENVVAR-smack.patch

@ -1,17 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/08_all_binutils-RPATH_ENVVAR-smack.patch
http://sourceware.org/ml/binutils/2007-07/msg00401.html
http://sourceware.org/bugzilla/show_bug.cgi?id=4970
diff -durN binutils-2.19.orig/configure binutils-2.19/configure
--- binutils-2.19.orig/configure 2008-09-04 04:18:16.000000000 +0200
+++ binutils-2.19/configure 2008-11-23 16:22:02.000000000 +0100
@@ -5601,6 +5601,7 @@
*-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
*) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
esac
+RPATH_ENVVAR="cant_touch_this_nah_nah_nah"
# On systems where the dynamic library environment variable is PATH,
if test "$RPATH_ENVVAR" = PATH; then

52
patches/binutils/2.19/120-sh-targets.patch

@ -1,52 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/12_all_sh-targets.patch
r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
Likewise, binutils has no idea about any of these new targets either, so we
fix that up too.. now we're able to actually build a real toolchain for
sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more
inept targets than that one, really. Go look, I promise).
diff -durN binutils-2.19.orig/configure binutils-2.19/configure
--- binutils-2.19.orig/configure 2008-11-23 16:23:44.000000000 +0100
+++ binutils-2.19/configure 2008-11-23 16:23:57.000000000 +0100
@@ -2281,7 +2281,7 @@
am33_2.0-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
- sh-*-linux*)
+ sh*-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
@@ -2606,7 +2606,7 @@
romp-*-*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
;;
- sh-*-* | sh64-*-*)
+ sh*-*-* | sh64-*-*)
case "${host}" in
i[3456789]86-*-vsta) ;; # don't add gprof back in
i[3456789]86-*-go32*) ;; # don't add gprof back in
diff -durN binutils-2.19.orig/configure.ac binutils-2.19/configure.ac
--- binutils-2.19.orig/configure.ac 2008-10-16 15:45:42.000000000 +0200
+++ binutils-2.19/configure.ac 2008-11-23 16:23:57.000000000 +0100
@@ -530,7 +530,7 @@
am33_2.0-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
- sh-*-linux*)
+ sh*-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
@@ -855,7 +855,7 @@
romp-*-*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
;;
- sh-*-* | sh64-*-*)
+ sh*-*-* | sh64-*-*)
case "${host}" in
i[[3456789]]86-*-vsta) ;; # don't add gprof back in
i[[3456789]]86-*-go32*) ;; # don't add gprof back in

31
patches/binutils/2.19/130-check_ldrunpath_length.patch

@ -1,31 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/42_all_012_check_ldrunpath_length.patch
Originaly from Debian:
## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
## DP: cases where -rpath isn't specified. (#151024)
diff -durN binutils-2.19.orig/ld/emultempl/elf32.em binutils-2.19/ld/emultempl/elf32.em
--- binutils-2.19.orig/ld/emultempl/elf32.em 2008-09-07 06:02:31.000000000 +0200
+++ binutils-2.19/ld/emultempl/elf32.em 2008-11-23 16:25:51.000000000 +0100
@@ -1219,6 +1219,8 @@
&& command_line.rpath == NULL)
{
lib_path = (const char *) getenv ("LD_RUN_PATH");
+ if ((lib_path) && (strlen (lib_path) == 0))
+ lib_path = NULL;
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
force))
break;
@@ -1404,6 +1406,8 @@
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
if (! (bfd_elf_size_dynamic_sections
(link_info.output_bfd, command_line.soname, rpath,
command_line.filter_shlib,

249
patches/binutils/2.19/140-pt-pax-flags-20081101.patch

@ -1,249 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/63_all_binutils-2.19-pt-pax-flags-20081101.patch
diff -durN binutils-2.19.orig/bfd/elf-bfd.h binutils-2.19/bfd/elf-bfd.h
--- binutils-2.19.orig/bfd/elf-bfd.h 2008-08-21 01:28:58.000000000 +0200
+++ binutils-2.19/bfd/elf-bfd.h 2008-11-23 16:31:09.000000000 +0100
@@ -1526,6 +1526,9 @@
/* Segment flags for the PT_GNU_STACK segment. */
unsigned int stack_flags;
+ /* Segment flags for the PT_PAX_FLAGS segment. */
+ unsigned int pax_flags;
+
/* Symbol version definitions in external objects. */
Elf_Internal_Verdef *verdef;
diff -durN binutils-2.19.orig/bfd/elf.c binutils-2.19/bfd/elf.c
--- binutils-2.19.orig/bfd/elf.c 2008-10-09 14:18:23.000000000 +0200
+++ binutils-2.19/bfd/elf.c 2008-11-23 16:31:09.000000000 +0100
@@ -1136,6 +1136,7 @@
case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
case PT_GNU_STACK: pt = "STACK"; break;
case PT_GNU_RELRO: pt = "RELRO"; break;
+ case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break;
default: pt = NULL; break;
}
return pt;
@@ -2442,6 +2443,9 @@
case PT_GNU_RELRO:
return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "relro");
+ case PT_PAX_FLAGS:
+ return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "pax_flags");
+
default:
/* Check for any processor-specific program segment types. */
bed = get_elf_backend_data (abfd);
@@ -3404,6 +3408,11 @@
++segs;
}
+ {
+ /* We need a PT_PAX_FLAGS segment. */
+ ++segs;
+ }
+
for (s = abfd->sections; s != NULL; s = s->next)
{
if ((s->flags & SEC_LOAD) != 0
@@ -3983,6 +3992,20 @@
}
}
+ {
+ amt = sizeof (struct elf_segment_map);
+ m = bfd_zalloc (abfd, amt);
+ if (m == NULL)
+ goto error_return;
+ m->next = NULL;
+ m->p_type = PT_PAX_FLAGS;
+ m->p_flags = elf_tdata (abfd)->pax_flags;
+ m->p_flags_valid = 1;
+
+ *pm = m;
+ pm = &m->next;
+ }
+
free (sections);
elf_tdata (abfd)->segment_map = mfirst;
}
@@ -5173,7 +5196,8 @@
6. PT_TLS segment includes only SHF_TLS sections.
7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments.
8. PT_DYNAMIC should not contain empty sections at the beginning
- (with the possible exception of .dynamic). */
+ (with the possible exception of .dynamic).
+ 9. PT_PAX_FLAGS segments does not include any sections. */
#define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed) \
((((segment->p_paddr \
? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \
@@ -5181,6 +5205,7 @@
&& (section->flags & SEC_ALLOC) != 0) \
|| IS_NOTE (segment, section)) \
&& segment->p_type != PT_GNU_STACK \
+ && segment->p_type != PT_PAX_FLAGS \
&& (segment->p_type != PT_TLS \
|| (section->flags & SEC_THREAD_LOCAL)) \
&& (segment->p_type == PT_LOAD \
diff -durN binutils-2.19.orig/bfd/elflink.c binutils-2.19/bfd/elflink.c
--- binutils-2.19.orig/bfd/elflink.c 2008-08-22 10:32:39.000000000 +0200
+++ binutils-2.19/bfd/elflink.c 2008-11-23 16:31:09.000000000 +0100
@@ -5397,16 +5397,30 @@
return TRUE;
bed = get_elf_backend_data (output_bfd);
+ elf_tdata (output_bfd)->pax_flags = PF_NORANDEXEC;
+
+ if (info->execheap)
+ elf_tdata (output_bfd)->pax_flags |= PF_NOMPROTECT;
+ else if (info->noexecheap)
+ elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT;
+
if (info->execstack)
- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+ {
+ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
+ }
else if (info->noexecstack)
- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
+ {
+ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
+ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
+ }
else
{
bfd *inputobj;
asection *notesec = NULL;
int exec = 0;
+ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
for (inputobj = info->input_bfds;
inputobj;
inputobj = inputobj->link_next)
@@ -5419,7 +5433,11 @@
if (s)
{
if (s->flags & SEC_CODE)
- exec = PF_X;
+ {
+ elf_tdata (output_bfd)->pax_flags &= ~PF_NOEMUTRAMP;
+ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
+ exec = PF_X;
+ }
notesec = s;
}
else if (bed->default_execstack)
diff -durN binutils-2.19.orig/binutils/readelf.c binutils-2.19/binutils/readelf.c
--- binutils-2.19.orig/binutils/readelf.c 2008-09-17 11:00:44.000000000 +0200
+++ binutils-2.19/binutils/readelf.c 2008-11-23 16:31:09.000000000 +0100
@@ -2505,6 +2505,7 @@
return "GNU_EH_FRAME";
case PT_GNU_STACK: return "GNU_STACK";
case PT_GNU_RELRO: return "GNU_RELRO";
+ case PT_PAX_FLAGS: return "PAX_FLAGS";
default:
if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
diff -durN binutils-2.19.orig/include/bfdlink.h binutils-2.19/include/bfdlink.h
--- binutils-2.19.orig/include/bfdlink.h 2008-08-17 05:12:50.000000000 +0200
+++ binutils-2.19/include/bfdlink.h 2008-11-23 16:31:09.000000000 +0100
@@ -319,6 +319,14 @@
/* TRUE if PT_GNU_RELRO segment should be created. */
unsigned int relro: 1;
+ /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT
+ flags. */
+ unsigned int execheap: 1;
+
+ /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT
+ flags. */
+ unsigned int noexecheap: 1;
+
/* TRUE if we should warn when adding a DT_TEXTREL to a shared object. */
unsigned int warn_shared_textrel: 1;
diff -durN binutils-2.19.orig/include/elf/common.h binutils-2.19/include/elf/common.h
--- binutils-2.19.orig/include/elf/common.h 2008-08-04 01:20:42.000000000 +0200
+++ binutils-2.19/include/elf/common.h 2008-11-23 16:31:09.000000000 +0100
@@ -360,6 +360,7 @@
#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */
#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
+#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */
/* Program segment permissions, in program header p_flags field. */
@@ -370,6 +371,21 @@
#define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
#define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */
+/* Flags to control PaX behavior. */
+
+#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */
+#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */
+#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */
+#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */
+#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */
+#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */
+#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */
+#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */
+#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */
+#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */
+#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */
+#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */
+
/* Values for section header, sh_type field. */
#define SHT_NULL 0 /* Section header table entry unused */
diff -durN binutils-2.19.orig/ld/emultempl/elf32.em binutils-2.19/ld/emultempl/elf32.em
--- binutils-2.19.orig/ld/emultempl/elf32.em 2008-11-23 16:30:36.000000000 +0100
+++ binutils-2.19/ld/emultempl/elf32.em 2008-11-23 16:31:09.000000000 +0100
@@ -2146,6 +2146,16 @@
link_info.noexecstack = TRUE;
link_info.execstack = FALSE;
}
+ else if (strcmp (optarg, "execheap") == 0)
+ {
+ link_info.execheap = TRUE;
+ link_info.noexecheap = FALSE;
+ }
+ else if (strcmp (optarg, "noexecheap") == 0)
+ {
+ link_info.noexecheap = TRUE;
+ link_info.execheap = FALSE;
+ }
EOF
if test -n "$COMMONPAGESIZE"; then
@@ -2229,6 +2239,8 @@
fprintf (file, _("\
-z execstack Mark executable as requiring executable stack\n"));
fprintf (file, _("\
+ -z execheap\t\tMark executable as requiring executable heap\n"));
+ fprintf (file, _("\
-z initfirst Mark DSO to be initialized first at runtime\n"));
fprintf (file, _("\
-z interpose Mark object to interpose all DSOs but executable\n"));
@@ -2252,6 +2264,8 @@
-z nodump Mark DSO not available to dldump\n"));
fprintf (file, _("\
-z noexecstack Mark executable as not requiring executable stack\n"));
+ fprintf (file, _("\
+ -z noexecheap\tMark executable as not requiring executable heap\n"));
EOF
if test -n "$COMMONPAGESIZE"; then
diff -durN binutils-2.19.orig/ld/ldgram.y binutils-2.19/ld/ldgram.y
--- binutils-2.19.orig/ld/ldgram.y 2008-07-06 15:38:36.000000000 +0200
+++ binutils-2.19/ld/ldgram.y 2008-11-23 16:31:09.000000000 +0100
@@ -1112,6 +1112,8 @@
$$ = exp_intop (0x6474e550);
else if (strcmp (s, "PT_GNU_STACK") == 0)
$$ = exp_intop (0x6474e551);
+ else if (strcmp (s, "PT_PAX_FLAGS") == 0)
+ $$ = exp_intop (0x65041580);
else
{
einfo (_("\

48
patches/binutils/2.19/150-warn-textrel.patch

@ -1,48 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/66_all_binutils-2.18.50.0.2-warn-textrel.patch
textrels are bad for forcing copy-on-write (this affects everyone),
and for security/runtime code generation, this affects security ppl.
But in either case, it doesn't matter who needs textrels, it's
the very fact that they're needed at all.
diff -durN binutils-2.19.orig/bfd/elflink.c binutils-2.19/bfd/elflink.c
--- binutils-2.19.orig/bfd/elflink.c 2008-11-23 16:49:47.000000000 +0100
+++ binutils-2.19/bfd/elflink.c 2008-11-23 16:49:14.000000000 +0100
@@ -10820,14 +10820,12 @@
goto error_return;
/* Check for DT_TEXTREL (late, in case the backend removes it). */
- if (info->warn_shared_textrel && info->shared)
+ o = bfd_get_section_by_name (dynobj, ".dynamic");
+ if (info->warn_shared_textrel && o != NULL)
{
bfd_byte *dyncon, *dynconend;
/* Fix up .dynamic entries. */
- o = bfd_get_section_by_name (dynobj, ".dynamic");
- BFD_ASSERT (o != NULL);
-
dyncon = o->contents;
dynconend = o->contents + o->size;
for (; dyncon < dynconend; dyncon += bed->s->sizeof_dyn)
@@ -10839,7 +10837,7 @@
if (dyn.d_tag == DT_TEXTREL)
{
info->callbacks->einfo
- (_("%P: warning: creating a DT_TEXTREL in a shared object.\n"));
+ (_("%P: warning: creating a DT_TEXTREL in object.\n"));
break;
}
}
diff -durN binutils-2.19.orig/ld/ldmain.c binutils-2.19/ld/ldmain.c
--- binutils-2.19.orig/ld/ldmain.c 2008-08-17 05:12:50.000000000 +0200
+++ binutils-2.19/ld/ldmain.c 2008-11-23 16:52:37.000000000 +0100
@@ -274,6 +274,7 @@
link_info.relax_pass = 1;
link_info.pei386_auto_import = -1;
link_info.spare_dynamic_tags = 5;
+ link_info.warn_shared_textrel = TRUE;
link_info.path_separator = ':';
ldfile_add_arch ("");

14
patches/binutils/2.19/160-use-new-ld-dtags.patch

@ -1,14 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/76_all_use-new-ld-dtags.patch
diff -durN binutils-2.19.orig/ld/ldmain.c binutils-2.19/ld/ldmain.c
--- binutils-2.19.orig/ld/ldmain.c 2008-11-23 16:54:42.000000000 +0100
+++ binutils-2.19/ld/ldmain.c 2008-11-23 16:56:16.000000000 +0100
@@ -262,6 +262,7 @@
link_info.allow_undefined_version = TRUE;
link_info.keep_memory = TRUE;
+ link_info.new_dtags = TRUE;
link_info.combreloc = TRUE;
link_info.strip_discarded = TRUE;
link_info.emit_hash = TRUE;

14
patches/binutils/2.19/170-use-relro.patch

@ -1,14 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/78_all_use-relro.patch
diff -durN binutils-2.19.orig/ld/ldmain.c binutils-2.19/ld/ldmain.c
--- binutils-2.19.orig/ld/ldmain.c 2008-11-23 16:59:24.000000000 +0100
+++ binutils-2.19/ld/ldmain.c 2008-11-23 16:59:45.000000000 +0100
@@ -264,6 +264,7 @@
link_info.keep_memory = TRUE;
link_info.new_dtags = TRUE;
link_info.combreloc = TRUE;
+ link_info.relro = TRUE;
link_info.strip_discarded = TRUE;
link_info.emit_hash = TRUE;
#ifndef __mips__

14
patches/binutils/2.19/180-libiberty-pic.patch

@ -1,14 +0,0 @@
Original patch from Gentoo:
gentoo/src/patchsets/binutils/2.19/91_all_libiberty-pic.patch
diff -durN binutils-2.19.orig/libiberty/Makefile.in binutils-2.19/libiberty/Makefile.in
--- binutils-2.19.orig/libiberty/Makefile.in 2008-07-24 15:51:49.000000000 +0200
+++ binutils-2.19/libiberty/Makefile.in 2008-11-23 17:03:33.000000000 +0100
@@ -227,6 +227,7 @@
$(AR) $(AR_FLAGS) $(TARGETLIB) \
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
$(RANLIB) $(TARGETLIB); \
+ cp $(TARGETLIB) ../ ; \
cd ..; \
else true; fi

0
patches/binutils/2.20.1/100-ppc64-pie.patch → patches/binutils/2.20.1a/100-ppc64-pie.patch

0
patches/binutils/2.20.1/110-RPATH_ENVVAR-smack.patch → patches/binutils/2.20.1a/110-RPATH_ENVVAR-smack.patch

0
patches/binutils/2.20.1/120-sh-targets.patch → patches/binutils/2.20.1a/120-sh-targets.patch

0
patches/binutils/2.20.1/130-ld-sysroot.patch → patches/binutils/2.20.1a/130-ld-sysroot.patch

0
patches/binutils/2.20.1/140-check_ldrunpath_length.patch → patches/binutils/2.20.1a/140-check_ldrunpath_length.patch

0
patches/binutils/2.20.1/150-pt-pax-flags-20090909.patch → patches/binutils/2.20.1a/150-pt-pax-flags-20090909.patch

0
patches/binutils/2.20.1/160-amd64-32bit-path.patch → patches/binutils/2.20.1a/160-amd64-32bit-path.patch

0
patches/binutils/2.20.1/170-warn-textrel.patch → patches/binutils/2.20.1a/170-warn-textrel.patch

0
patches/binutils/2.20.1/190-use-new-ld-dtags.patch → patches/binutils/2.20.1a/190-use-new-ld-dtags.patch

0
patches/binutils/2.20.1/200-document-new-dtags-behaviour.patch → patches/binutils/2.20.1a/200-document-new-dtags-behaviour.patch

0
patches/binutils/2.20.1/220-use-relro.patch → patches/binutils/2.20.1a/220-use-relro.patch

0
patches/binutils/2.20.1/230-libiberty-pic.patch → patches/binutils/2.20.1a/230-libiberty-pic.patch

0
patches/binutils/2.20.1/240-ld_makefile.patch → patches/binutils/2.20.1a/240-ld_makefile.patch

0
patches/binutils/2.20.1/250-arm-eabi-conf.patch → patches/binutils/2.20.1a/250-arm-eabi-conf.patch

0
patches/binutils/2.20.1/270-better_file_error.patch → patches/binutils/2.20.1a/270-better_file_error.patch

0
patches/binutils/2.20.1/280-unexport_LD_LIBRARY_PATH.patch → patches/binutils/2.20.1a/280-unexport_LD_LIBRARY_PATH.patch

0
patches/binutils/2.20.1/290-ld-stub-crash.patch → patches/binutils/2.20.1a/290-ld-stub-crash.patch

0
patches/binutils/2.20.1/300-mips64-defaultemul.patch → patches/binutils/2.20.1a/300-mips64-defaultemul.patch

16
patches/binutils/2.20/100-ppc64-pie.patch

@ -1,16 +0,0 @@
--- binutils/bfd/elf64-ppc.c.jj 2004-09-27 16:46:06.000000000 -0400
+++ binutils/bfd/elf64-ppc.c 2004-10-04 09:09:50.000000000 -0400
@@ -9681,7 +9681,12 @@ ppc64_elf_relocate_section (bfd *output_
else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf)
&& !is_opd
&& r_type != R_PPC64_TOC)
- outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
+ {
+ outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
+ if (h->elf.dynindx == -1
+ && h->elf.root.type == bfd_link_hash_undefweak)
+ memset (&outrel, 0, sizeof outrel);
+ }
else
{
/* This symbol is local, or marked to become local,

13
patches/binutils/2.20/110-RPATH_ENVVAR-smack.patch

@ -1,13 +0,0 @@
http://sourceware.org/ml/binutils/2007-07/msg00401.html
http://sourceware.org/bugzilla/show_bug.cgi?id=4970
--- binutils/configure
+++ binutils/configure
@@ -5601,6 +5601,7 @@ case "${host}" in
*-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
*) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
esac
+RPATH_ENVVAR="cant_touch_this_nah_nah_nah"
# On systems where the dynamic library environment variable is PATH,
if test "$RPATH_ENVVAR" = PATH; then

40
patches/binutils/2.20/120-sh-targets.patch

@ -1,40 +0,0 @@
--- binutils-2.20-dist/configure
+++ binutils-2.20/configure
@@ -3054,7 +3054,7 @@
am33_2.0-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
- sh-*-linux*)
+ sh*-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
@@ -3390,7 +3390,7 @@
romp-*-*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
;;
- sh-*-* | sh64-*-*)
+ sh*-*-* | sh64-*-*)
case "${host}" in
i[3456789]86-*-vsta) ;; # don't add gprof back in
i[3456789]86-*-go32*) ;; # don't add gprof back in
--- binutils-2.20-dist/configure.ac
+++ binutils-2.20/configure.ac
@@ -424,7 +424,7 @@
am33_2.0-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
- sh-*-linux*)
+ sh*-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
@@ -712,7 +712,7 @@
romp-*-*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
;;
- sh-*-* | sh64-*-*)
+ sh*-*-* | sh64-*-*)
case "${host}" in
i[[3456789]]86-*-vsta) ;; # don't add gprof back in
i[[3456789]]86-*-go32*) ;; # don't add gprof back in

36
patches/binutils/2.20/130-ld-sysroot.patch

@ -1,36 +0,0 @@
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
Always try to prepend the sysroot prefix to absolute filenames first.
http://bugs.gentoo.org/275666
http://sourceware.org/bugzilla/show_bug.cgi?id=10340
--- binutils/ld/ldfile.c
+++ binutils/ld/ldfile.c
@@ -308,18 +308,24 @@
directory first. */
if (! entry->is_archive)
{
- if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename))
+ /* For absolute pathnames, try to always open the file in the
+ sysroot first. If this fails, try to open the file at the
+ given location. */
+ entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
+ if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
{
char *name = concat (ld_sysroot, entry->filename,
(const char *) NULL);
if (ldfile_try_open_bfd (name, entry))
{
entry->filename = name;
+ entry->sysrooted = TRUE;
return TRUE;
}
free (name);
}
- else if (ldfile_try_open_bfd (entry->filename, entry))
+
+ if (ldfile_try_open_bfd (entry->filename, entry))
{
entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
&& is_sysrooted_pathname (entry->filename, TRUE);

47
patches/binutils/2.20/140-check_ldrunpath_length.patch

@ -1,47 +0,0 @@
#!/bin/sh -e
## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
## DP: cases where -rpath isn't specified. (#151024)
if [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
case "$1" in
-patch) patch $patch_opts -p1 < $0;;
-unpatch) patch $patch_opts -p1 -R < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1;;
esac
exit 0
@DPATCH@
diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
+++ binutils-2.20/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
@@ -692,6 +692,8 @@
&& command_line.rpath == NULL)
{
lib_path = (const char *) getenv ("LD_RUN_PATH");
+ if ((lib_path) && (strlen (lib_path) == 0))
+ lib_path = NULL;
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
force))
break;
@@ -871,6 +873,8 @@
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
if (! (bfd_elf_size_dynamic_sections
(link_info.output_bfd, command_line.soname, rpath,
command_line.filter_shlib,

238
patches/binutils/2.20/150-pt-pax-flags-20090909.patch

@ -1,238 +0,0 @@
--- binutils-2.20/bfd/elf-bfd.h
+++ binutils-2.20/bfd/elf-bfd.h
@@ -1527,6 +1527,9 @@ struct elf_obj_tdata
/* Segment flags for the PT_GNU_STACK segment. */
unsigned int stack_flags;
+ /* Segment flags for the PT_PAX_FLAGS segment. */
+ unsigned int pax_flags;
+
/* Symbol version definitions in external objects. */
Elf_Internal_Verdef *verdef;
--- binutils-2.20/bfd/elf.c
+++ binutils-2.20/bfd/elf.c
@@ -1081,6 +1081,7 @@ get_segment_type (unsigned int p_type)
case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
case PT_GNU_STACK: pt = "STACK"; break;
case PT_GNU_RELRO: pt = "RELRO"; break;
+ case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break;
default: pt = NULL; break;
}
return pt;
@@ -2379,6 +2380,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int index)
case PT_GNU_RELRO:
return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "relro");
+ case PT_PAX_FLAGS:
+ return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "pax_flags");
+
default:
/* Check for any processor-specific program segment types. */
bed = get_elf_backend_data (abfd);
@@ -3393,6 +3397,11 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
++segs;
}
+ {
+ /* We need a PT_PAX_FLAGS segment. */
+ ++segs;
+ }
+
for (s = abfd->sections; s != NULL; s = s->next)
{
if ((s->flags & SEC_LOAD) != 0
@@ -3972,6 +3981,20 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
}
}
+ {
+ amt = sizeof (struct elf_segment_map);
+ m = bfd_zalloc (abfd, amt);
+ if (m == NULL)
+ goto error_return;
+ m->next = NULL;
+ m->p_type = PT_PAX_FLAGS;
+ m->p_flags = elf_tdata (abfd)->pax_flags;
+ m->p_flags_valid = 1;
+
+ *pm = m;
+ pm = &m->next;
+ }
+
free (sections);
elf_tdata (abfd)->segment_map = mfirst;
}
@@ -5176,7 +5199,8 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
6. PT_TLS segment includes only SHF_TLS sections.
7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments.
8. PT_DYNAMIC should not contain empty sections at the beginning
- (with the possible exception of .dynamic). */
+ (with the possible exception of .dynamic).
+ 9. PT_PAX_FLAGS segments do not include any sections. */
#define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed) \
((((segment->p_paddr \
? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \
@@ -5184,6 +5208,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
&& (section->flags & SEC_ALLOC) != 0) \
|| IS_NOTE (segment, section)) \
&& segment->p_type != PT_GNU_STACK \
+ && segment->p_type != PT_PAX_FLAGS \
&& (segment->p_type != PT_TLS \
|| (section->flags & SEC_THREAD_LOCAL)) \
&& (segment->p_type == PT_LOAD \
--- binutils-2.20/bfd/elflink.c
+++ binutils-2.20/bfd/elflink.c
@@ -5465,16 +5465,30 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
return TRUE;
bed = get_elf_backend_data (output_bfd);
+
+ elf_tdata (output_bfd)->pax_flags = PF_NORANDEXEC;
+ if (info->execheap)
+ elf_tdata (output_bfd)->pax_flags |= PF_NOMPROTECT;
+ else if (info->noexecheap)
+ elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT;
+
if (info->execstack)
- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+ {
+ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
+ }
else if (info->noexecstack)
- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
+ {
+ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
+ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
+ }
else
{
bfd *inputobj;
asection *notesec = NULL;
int exec = 0;
+ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
for (inputobj = info->input_bfds;
inputobj;
inputobj = inputobj->link_next)
@@ -5487,7 +5501,11 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
if (s)
{
if (s->flags & SEC_CODE)
- exec = PF_X;
+ {
+ elf_tdata (output_bfd)->pax_flags &= ~PF_NOEMUTRAMP;
+ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
+ exec = PF_X;
+ }
notesec = s;
}
else if (bed->default_execstack)
--- binutils-2.20/binutils/readelf.c
+++ binutils-2.20/binutils/readelf.c
@@ -2556,6 +2556,7 @@ get_segment_type (unsigned long p_type)
return "GNU_EH_FRAME";
case PT_GNU_STACK: return "GNU_STACK";
case PT_GNU_RELRO: return "GNU_RELRO";
+ case PT_PAX_FLAGS: return "PAX_FLAGS";
default:
if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
--- binutils-2.20/include/bfdlink.h
+++ binutils-2.20/include/bfdlink.h
@@ -319,6 +319,14 @@ struct bfd_link_info
/* TRUE if PT_GNU_RELRO segment should be created. */
unsigned int relro: 1;
+ /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT
+ flags. */
+ unsigned int execheap: 1;
+
+ /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT
+ flags. */
+ unsigned int noexecheap: 1;
+
/* TRUE if we should warn when adding a DT_TEXTREL to a shared object. */
unsigned int warn_shared_textrel: 1;
--- binutils-2.20/include/elf/common.h
+++ binutils-2.20/include/elf/common.h
@@ -422,6 +422,7 @@
#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */
#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
+#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */
/* Program segment permissions, in program header p_flags field. */
@@ -432,6 +433,21 @@
#define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
#define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */
+/* Flags to control PaX behavior. */
+
+#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */
+#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */
+#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */
+#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */
+#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */
+#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */
+#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */
+#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */
+#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */
+#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */
+#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */
+#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */
+
/* Values for section header, sh_type field. */
#define SHT_NULL 0 /* Section header table entry unused */
--- binutils-2.20/ld/emultempl/elf32.em
+++ binutils-2.20/ld/emultempl/elf32.em
@@ -2159,6 +2159,16 @@ fragment <<EOF
link_info.noexecstack = TRUE;
link_info.execstack = FALSE;
}
+ else if (strcmp (optarg, "execheap") == 0)
+ {
+ link_info.execheap = TRUE;
+ link_info.noexecheap = FALSE;
+ }
+ else if (strcmp (optarg, "noexecheap") == 0)
+ {
+ link_info.noexecheap = TRUE;
+ link_info.execheap = FALSE;
+ }
EOF
if test -n "$COMMONPAGESIZE"; then
@@ -2237,6 +2247,8 @@ fragment <<EOF
fprintf (file, _("\
-z execstack Mark executable as requiring executable stack\n"));
fprintf (file, _("\
+ -z execheap Mark executable as requiring executable heap\n"));
+ fprintf (file, _("\
-z initfirst Mark DSO to be initialized first at runtime\n"));
fprintf (file, _("\
-z interpose Mark object to interpose all DSOs but executable\n"));
@@ -2260,6 +2272,8 @@ fragment <<EOF
-z nodump Mark DSO not available to dldump\n"));
fprintf (file, _("\
-z noexecstack Mark executable as not requiring executable stack\n"));
+ fprintf (file, _("\
+ -z noexecheap Mark executable as not requiring executable heap\n"));
EOF
if test -n "$COMMONPAGESIZE"; then
--- binutils-2.20/ld/ldgram.y
+++ binutils-2.20/ld/ldgram.y
@@ -1116,6 +1116,8 @@ phdr_type:
$$ = exp_intop (0x6474e550);
else if (strcmp (s, "PT_GNU_STACK") == 0)
$$ = exp_intop (0x6474e551);
+ else if (strcmp (s, "PT_PAX_FLAGS") == 0)
+ $$ = exp_intop (0x65041580);
else
{
einfo (_("\

16
patches/binutils/2.20/160-amd64-32bit-path.patch

@ -1,16 +0,0 @@