diff options
author | Christian Faulhammer <fauli@gentoo.org> | 2009-02-05 01:50:45 +0000 |
---|---|---|
committer | Christian Faulhammer <fauli@gentoo.org> | 2009-02-05 01:50:45 +0000 |
commit | 69524b930a3b92aca36fee67f293c209c8253f61 (patch) | |
tree | 950a6be3a544800bf88c495baf60c27cee3518d5 | |
parent | Removed the eautoreconf call until I can get a propper fix for the autotools ... (diff) | |
download | historical-69524b930a3b92aca36fee67f293c209c8253f61.tar.gz historical-69524b930a3b92aca36fee67f293c209c8253f61.tar.bz2 historical-69524b930a3b92aca36fee67f293c209c8253f61.zip |
revbump to fix executable stacks (see bug 249328 by Lars Strojny <lars AT strojny DOT net>) and a segfault on amd64; both taken from upstream, hint and inspiration by Davide Pesavento <davidepesa AT gmail DOT com>
Package-Manager: portage-2.1.6.4/cvs/Linux 2.6.27-gentoo-r8 i686
-rw-r--r-- | dev-lang/erlang/ChangeLog | 13 | ||||
-rw-r--r-- | dev-lang/erlang/Manifest | 11 | ||||
-rw-r--r-- | dev-lang/erlang/erlang-12.2.5-r1.ebuild | 156 | ||||
-rw-r--r-- | dev-lang/erlang/files/erlang-12.2.5-amd64_segfault.patch | 139 | ||||
-rw-r--r-- | dev-lang/erlang/files/erlang-12.2.5-remove_execstack.patch | 100 |
5 files changed, 413 insertions, 6 deletions
diff --git a/dev-lang/erlang/ChangeLog b/dev-lang/erlang/ChangeLog index cb0d324b8081..7b5220b360b3 100644 --- a/dev-lang/erlang/ChangeLog +++ b/dev-lang/erlang/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for dev-lang/erlang -# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/erlang/ChangeLog,v 1.148 2008/12/18 10:27:58 fauli Exp $ +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/erlang/ChangeLog,v 1.149 2009/02/05 01:50:45 fauli Exp $ + +*erlang-12.2.5-r1 (05 Feb 2009) + + 05 Feb 2009; Christian Faulhammer <fauli@gentoo.org> + +files/erlang-12.2.5-amd64_segfault.patch, + +files/erlang-12.2.5-remove_execstack.patch, +erlang-12.2.5-r1.ebuild: + revbump to fix executable stacks (see bug 249328 by Lars Strojny <lars AT + strojny DOT net>) and a segfault on amd64; both taken from upstream, hint + and inspiration by Davide Pesavento <davidepesa AT gmail DOT com> 18 Dec 2008; Christian Faulhammer <fauli@gentoo.org> -files/erlang-12.2.3-gethostbyname.patch, diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest index 756c4f96b9af..dfff9bd72e15 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -2,16 +2,19 @@ Hash: SHA1 AUX 50erlang-gentoo.el 134 RMD160 a453ad18f47d20e5ea5ecd1f4e4054d00eab5c35 SHA1 7c17979f533654ef05bbfcc8ae30554e7843923b SHA256 97e1da82cae31a554134d7370739520e4c67b2544e5a13f887651a62e710b4d4 +AUX erlang-12.2.5-amd64_segfault.patch 4459 RMD160 55c66d43421817abf51bca36b0a60be2294897c1 SHA1 e6533ed6316913791ea8abacb3b5b06bc88f2c0f SHA256 d19008728fe7d61be44f708face9adb6530934531c9911a9fdf108447054f11c +AUX erlang-12.2.5-remove_execstack.patch 3819 RMD160 a52ffd31864b0acec958f5ab4dbc81f9a64ad82c SHA1 185da98fd9da97673ee908eb69390dda7a52241b SHA256 4389cd3c56712d7b07d36f94d4c58063844912082ca431ed1c06f13d668609d1 DIST otp_doc_html_R12B-5.tar.gz 5713089 RMD160 b460906043171b27735332ec90c45e38d888869a SHA1 0bd369d02051e01bac58c9b8665bd3538e116f51 SHA256 db131a347217ab434ca4c483abb61dc01989e0db43e1fe6982c3067f60cf91d7 DIST otp_doc_man_R12B-5.tar.gz 822321 RMD160 e28d555d0a86fc69e0ee091864828c8eaa58d2be SHA1 ae7036bd2afc9d1fca97f0de2eca84f56656def8 SHA256 f7acb458b72ffa8f9b1f45501bed85d3d9fb691c601f3f6997856c501e2f0659 DIST otp_src_R12B-5.tar.gz 47470402 RMD160 7265ae8ebd045ec5b977148a7c9b995eb7ef2d2d SHA1 6c45509acf70d35d5def2cbefd86ada093c1ac3a SHA256 6ec3f344dd626bd83494fcad66db98a03f930a039b2a1499313d1a5a57aadda7 +EBUILD erlang-12.2.5-r1.ebuild 4733 RMD160 3ae350f957a6efca56b72c5eeaed4fbebce8660b SHA1 305729832a38b8942c11b84b73ca0b54c8d17f09 SHA256 e9d5668480fb0bdb0e3e72c6e29ca5811b63035cd7ad013826213571841613be EBUILD erlang-12.2.5.ebuild 4558 RMD160 6160fa23d670e1b37b8f1200a916297798e5400d SHA1 21f5b0a72c8a05c47060be789ef938869f698918 SHA256 8713f7e63ac033dc426e2dd3265bd9935edad6e82dfc0ec3a79853779286c6fe -MISC ChangeLog 24358 RMD160 7191a60397e9e5d9d5f3349961c0e8f093244dfb SHA1 9f6b160e7820cafd12c8c3f6592fa8af30f80113 SHA256 d1d91e2e11fca1d4765033e176ff9ad0da569c6257be5dec412301b4a606cd6b +MISC ChangeLog 24785 RMD160 c5078523e5b07cbfa5f157ee9b06a1c37b680165 SHA1 de1b1a4f38609f47e5c042e6dc4401ab535758c6 SHA256 e9c8f874657d416dfc078b49219ff41608ff4346589a75a1fbd665cf299d4343 MISC metadata.xml 693 RMD160 6c8d43bd35549421b055b468c45f1f2e5d39357d SHA1 7c778bbc7faf1dfdc11a6155e1c525e42d63ebb5 SHA256 ee0ac0699562802a5191deaef78770c25a342875a3b363ea95a0b92da6f107e3 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) -iEYEARECAAYFAklKJcYACgkQNQqtfCuFneNFvgCfcNmWnjCc2I0SF13P46lu+scn -G44AoJSWedfpsKD+m9v1mJR0rsFH3W8z -=3gcm +iEYEARECAAYFAkmKRhQACgkQNQqtfCuFneO7kgCghxgJSPU5rdD1hBqGbn95DZ+J +7u8AoIwXKFVCWvupPNvSnkd+CubuVIMF +=DF+2 -----END PGP SIGNATURE----- diff --git a/dev-lang/erlang/erlang-12.2.5-r1.ebuild b/dev-lang/erlang/erlang-12.2.5-r1.ebuild new file mode 100644 index 000000000000..5812d3821874 --- /dev/null +++ b/dev-lang/erlang/erlang-12.2.5-r1.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/erlang/erlang-12.2.5-r1.ebuild,v 1.1 2009/02/05 01:50:45 fauli Exp $ + +inherit autotools elisp-common eutils flag-o-matic multilib versionator + +# NOTE: If you need symlinks for binaries please tell maintainers or +# open up a bug to let it be created. + +# erlang uses a really weird versioning scheme which caused quite a few problems +# already. Thus we do a slight modification converting all letters to digits to +# make it more sane (see e.g. #26420) + +# the next line selects the right source. +MY_PV="R$(get_major_version)B-$(get_version_component_range 3)" + +# ATTN!! Take care when processing the C, etc version! +MY_P=otp_src_${MY_PV} + +DESCRIPTION="Erlang programming language, runtime environment, and large collection of libraries" +HOMEPAGE="http://www.erlang.org/" +SRC_URI="http://www.erlang.org/download/${MY_P}.tar.gz + doc? ( http://erlang.org/download/otp_doc_man_${MY_PV}.tar.gz + http://erlang.org/download/otp_doc_html_${MY_PV}.tar.gz )" + +LICENSE="EPL" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="doc emacs hipe java kpoll odbc smp sctp ssl tk" + +RDEPEND=">=dev-lang/perl-5.6.1 + ssl? ( >=dev-libs/openssl-0.9.7d ) + emacs? ( virtual/emacs ) + java? ( >=virtual/jdk-1.2 ) + odbc? ( dev-db/unixODBC )" +DEPEND="${RDEPEND} + sctp? ( net-misc/lksctp-tools ) + tk? ( dev-lang/tk )" + +S="${WORKDIR}/${MY_P}" + +SITEFILE=50${PN}-gentoo.el + +src_unpack() { + unpack ${A} + cd "${S}" + + use odbc || sed -i 's: odbc : :' lib/Makefile + + # Both patches are taken from upstream and will be included in R13 + epatch "${FILESDIR}"/${P}-amd64_segfault.patch + epatch "${FILESDIR}"/${P}-remove_execstack.patch + + if use hipe; then + ewarn + ewarn "You enabled High performance Erlang. Be aware that this extension" + ewarn "can break the compilation in many ways, especially on hardened systems." + ewarn "Don't cry, don't file bugs, just disable it! If you have a fix, tell us though on Bugzilla." + ewarn + fi + eautoreconf +} + +src_compile() { + use java || export JAVAC=false + + econf \ + --enable-threads \ + $(use_enable sctp) \ + $(use_enable hipe) \ + $(use_with ssl) \ + $(use_enable ssl dynamic-ssl-lib) \ + $(use_enable kpoll kernel-poll) \ + $(use_enable smp smp-support) \ + || die "econf failed" + emake -j1 || die "emake failed" + + if use emacs ; then + pushd lib/tools/emacs + elisp-compile *.el || die + popd + fi +} + +extract_version() { + sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk" +} + +src_install() { + local ERL_LIBDIR=/usr/$(get_libdir)/erlang + local ERL_INTERFACE_VER=$(extract_version lib/erl_interface EI_VSN) + local ERL_ERTS_VER=$(extract_version erts VSN) + + emake -j1 INSTALL_PREFIX="${D}" install || die "install failed" + dodoc AUTHORS README + + dosym "${ERL_LIBDIR}/bin/erl" /usr/bin/erl + dosym "${ERL_LIBDIR}/bin/erlc" /usr/bin/erlc + dosym "${ERL_LIBDIR}/bin/escript" /usr/bin/escript + dosym \ + "${ERL_LIBDIR}/lib/erl_interface-${ERL_INTERFACE_VER}/bin/erl_call" \ + /usr/bin/erl_call + dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam + + ## Remove ${D} from the following files + dosed "${ERL_LIBDIR}/bin/erl" + dosed "${ERL_LIBDIR}/bin/start" + grep -rle "${D}" "${D}/${ERL_LIBDIR}/erts-${ERL_ERTS_VER}" | xargs sed -i -e "s:${D}::g" + + ## Clean up the no longer needed files + rm "${D}/${ERL_LIBDIR}/Install" + + if use doc ; then + for i in "${WORKDIR}"/man/man* ; do + dodir "${ERL_LIBDIR}/${i##${WORKDIR}}" + done + for file in "${WORKDIR}"/man/man*/*.[1-9]; do + # Man page processing tools expect a capitalized "SEE ALSO" section + # header, has been reported upstream, should be fixed in R12 + sed -i -e 's,\.SH See Also,\.SH SEE ALSO,g' ${file} + # doman sucks so we can't use it + cp ${file} "${D}/${ERL_LIBDIR}"/man/man${file##*.}/ + done + # extend MANPATH, so the normal man command can find it + # see bug 189639 + dodir /etc/env.d/ + echo "MANPATH=\"${ERL_LIBDIR}/man\"" > "${D}/etc/env.d/90erlang" + dohtml -A README,erl,hrl,c,h,kwc,info -r \ + "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* + fi + + if use emacs ; then + pushd "${S}" + elisp-install erlang lib/tools/emacs/*.{el,elc} + elisp-site-file-install "${FILESDIR}"/${SITEFILE} + popd + fi + + # prepare erl for SMP, fixes bug #188112 + use smp && sed -i -e 's:\(exec.*erlexec\):\1 -smp:' \ + "${D}/${ERL_LIBDIR}/bin/erl" +} + +pkg_postinst() { + use emacs && elisp-site-regen + elog + elog "If you need a symlink to one of Erlang's binaries," + elog "please open a bug on http://bugs.gentoo.org/" + elog + elog "Gentoo's versioning scheme differs from the author's, so please refer to this version as ${MY_PV}" + elog +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/erlang/files/erlang-12.2.5-amd64_segfault.patch b/dev-lang/erlang/files/erlang-12.2.5-amd64_segfault.patch new file mode 100644 index 000000000000..49c420261500 --- /dev/null +++ b/dev-lang/erlang/files/erlang-12.2.5-amd64_segfault.patch @@ -0,0 +1,139 @@ +--- otp_src_R12B-5/lib/hipe/amd64/hipe_amd64_registers.erl.~1~ 2007-11-26 19:59:44.000000000 +0100 ++++ otp_src_R12B-5/lib/hipe/amd64/hipe_amd64_registers.erl 2009-01-21 14:54:23.000000000 +0100 +@@ -268,8 +268,7 @@ tailcall_clobbered() -> % tailcall crap + | fp_call_clobbered()]. + + live_at_return() -> +- [{?RAX,tagged} +- ,{?RSP,untagged} ++ [{?RSP,untagged} + ,{?PROC_POINTER,untagged} + ,{?FCALLS,untagged} + ,{?HEAP_LIMIT,untagged} +--- otp_src_R12B-5/lib/hipe/rtl/hipe_rtl.erl.~1~ 2008-11-04 11:51:39.000000000 +0100 ++++ otp_src_R12B-5/lib/hipe/rtl/hipe_rtl.erl 2009-01-21 14:54:36.000000000 +0100 +@@ -882,15 +882,17 @@ args(I) -> + #alub{} -> [alub_src1(I), alub_src2(I)]; + #branch{} -> [branch_src1(I), branch_src2(I)]; + #call{} -> ++ Args = call_arglist(I) ++ hipe_rtl_arch:call_used(), + case call_is_known(I) of +- false -> [call_fun(I)|call_arglist(I)]; +- true -> call_arglist(I) ++ false -> [call_fun(I) | Args]; ++ true -> Args + end; + #comment{} -> []; + #enter{} -> ++ Args = enter_arglist(I) ++ hipe_rtl_arch:tailcall_used(), + case enter_is_known(I) of +- false -> hipe_rtl_arch:add_ra_reg([enter_fun(I)|enter_arglist(I)]); +- true -> hipe_rtl_arch:add_ra_reg(enter_arglist(I)) ++ false -> [enter_fun(I) | Args]; ++ true -> Args + end; + #fconv{} -> [fconv_src(I)]; + #fixnumop{} -> [fixnumop_src(I)]; +@@ -910,7 +912,7 @@ args(I) -> + #move{} -> [move_src(I)]; + #multimove{} -> multimove_srclist(I); + #phi{} -> phi_args(I); +- #return{} -> hipe_rtl_arch:add_ra_reg(return_varlist(I)); ++ #return{} -> return_varlist(I) ++ hipe_rtl_arch:return_used(); + #store{} -> [store_base(I), store_offset(I), store_src(I)]; + #switch{} -> [switch_src(I)] + end. +@@ -924,7 +926,7 @@ defines(Instr) -> + #alu{} -> [alu_dst(Instr)]; + #alub{} -> [alub_dst(Instr)]; + #branch{} -> []; +- #call{} -> call_dstlist(Instr); ++ #call{} -> call_dstlist(Instr) ++ hipe_rtl_arch:call_defined(); + #comment{} -> []; + #enter{} -> []; + #fconv{} -> [fconv_dst(Instr)]; +@@ -990,7 +992,7 @@ subst_uses(Subst, I) -> + end; + #comment{} -> + I; +- #enter{} -> %% XXX: Check why ra_reg is added in uses() but not updated here ++ #enter{} -> + case enter_is_known(I) of + false -> + I0 = enter_fun_update(I, subst1(Subst, enter_fun(I))), +--- otp_src_R12B-5/lib/hipe/rtl/hipe_rtl_arch.erl.~1~ 2008-06-10 14:47:41.000000000 +0200 ++++ otp_src_R12B-5/lib/hipe/rtl/hipe_rtl_arch.erl 2009-01-21 14:56:26.000000000 +0100 +@@ -22,9 +22,12 @@ + heap_pointer/0, + heap_limit/0, + fcalls/0, +- add_ra_reg/1, + reg_name/1, + is_precoloured/1, ++ call_defined/0, ++ call_used/0, ++ tailcall_used/0, ++ return_used/0, + live_at_return/0, + endianess/0, + load_big_2/4, +@@ -164,22 +167,6 @@ fcalls_from_pcb() -> + Reg = hipe_rtl:mk_new_reg(), + {pcb_load(Reg, ?P_FCALLS), Reg, pcb_store(?P_FCALLS, Reg)}. + +--spec(add_ra_reg/1 :: ([X]) -> [X]). +- +-add_ra_reg(Rest) -> +- case get(hipe_target_arch) of +- ultrasparc -> +- [hipe_rtl:mk_reg(hipe_sparc_registers:return_address()) | Rest]; +- powerpc -> +- Rest; % do not include LR: it's not a normal register +- arm -> +- [hipe_rtl:mk_reg(hipe_arm_registers:lr()) | Rest]; +- x86 -> +- Rest; +- amd64 -> +- Rest +- end. +- + reg_name(Reg) -> + case get(hipe_target_arch) of + ultrasparc -> +@@ -225,6 +212,18 @@ is_precolored_regnum(RegNum) -> + hipe_amd64_registers:is_precoloured(RegNum) + end. + ++call_defined() -> ++ call_used(). ++ ++call_used() -> ++ live_at_return(). ++ ++tailcall_used() -> ++ call_used(). ++ ++return_used() -> ++ tailcall_used(). ++ + live_at_return() -> + case get(hipe_target_arch) of + ultrasparc -> +--- otp_src_R12B-5/lib/hipe/x86/hipe_x86_registers.erl.~1~ 2007-11-26 19:58:49.000000000 +0100 ++++ otp_src_R12B-5/lib/hipe/x86/hipe_x86_registers.erl 2009-01-21 14:53:33.000000000 +0100 +@@ -224,14 +224,8 @@ all_x87_pseudos() -> + {4,double}, {5,double}, {6,double}]. + + live_at_return() -> +- [{?EAX,tagged} +- %% XXX: should the following (fixed) regs be included or not? +- ,{?ESP,untagged} ++ [{?ESP,untagged} + ,{?PROC_POINTER,untagged} +- %% Lets try not! +- %% If these are included they will interfere with other +- %% temps during regalloc, but regs FCALLS and HEAP_LIMIT +- %% don't even exist at regalloc. + ,{?FCALLS,untagged} + ,{?HEAP_LIMIT,untagged} + | ?LIST_HP_LIVE_AT_RETURN diff --git a/dev-lang/erlang/files/erlang-12.2.5-remove_execstack.patch b/dev-lang/erlang/files/erlang-12.2.5-remove_execstack.patch new file mode 100644 index 000000000000..d0957fb60952 --- /dev/null +++ b/dev-lang/erlang/files/erlang-12.2.5-remove_execstack.patch @@ -0,0 +1,100 @@ +--- otp-0125/erts/emulator/hipe/hipe_amd64_bifs.m4.~1~ 2008-10-27 20:07:08.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_amd64_bifs.m4 2009-02-01 11:36:47.000000000 +0100 +@@ -531,3 +531,7 @@ define(gc_bif_interface_2,`standard_bif_ + define(gc_nofail_primop_interface_1,`nofail_primop_interface_1($1, $2)') + + include(`hipe/hipe_bif_list.m4') ++ ++`#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif' +--- otp-0125/erts/emulator/hipe/hipe_amd64_glue.S.~1~ 2008-11-07 23:44:11.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_amd64_glue.S 2009-02-01 11:36:47.000000000 +0100 +@@ -418,3 +418,7 @@ nbif_inc_stack_0: + LOAD_ARG_REGS + SWITCH_C_TO_ERLANG_QUICK + NSP_RET0 ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +--- otp-0125/erts/emulator/hipe/hipe_arm_bifs.m4.~1~ 2008-10-27 20:07:08.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_arm_bifs.m4 2009-02-01 11:37:21.000000000 +0100 +@@ -525,3 +525,7 @@ $1: + #endif') + + include(`hipe/hipe_bif_list.m4') ++ ++`#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif' +--- otp-0125/erts/emulator/hipe/hipe_arm_glue.S.~1~ 2008-11-07 23:44:11.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_arm_glue.S 2009-02-01 11:38:25.000000000 +0100 +@@ -392,3 +392,7 @@ hipe_arm_inc_stack: + LOAD_ARG_REGS + # this relies on LOAD_ARG_REGS not clobbering TEMP_ARG0 + mov pc, TEMP_ARG0 ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +--- otp-0125/erts/emulator/hipe/hipe_ppc_bifs.m4.~1~ 2008-10-27 20:07:09.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_ppc_bifs.m4 2009-02-01 11:36:47.000000000 +0100 +@@ -544,3 +544,7 @@ ASYM($1): + #endif') + + include(`hipe/hipe_bif_list.m4') ++ ++`#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif' +--- otp-0125/erts/emulator/hipe/hipe_ppc_glue.S.~1~ 2008-11-07 23:44:12.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_ppc_glue.S 2009-02-01 11:36:47.000000000 +0100 +@@ -557,3 +557,7 @@ ASYM(hipe_ppc_inc_stack): + LOAD NSP, P_NSP(P) + LOAD_ARG_REGS + blr ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +--- otp-0125/erts/emulator/hipe/hipe_sparc_bifs.m4.~1~ 2008-10-27 20:07:09.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_sparc_bifs.m4 2009-02-01 11:36:47.000000000 +0100 +@@ -554,3 +554,7 @@ $1: + #endif') + + include(`hipe/hipe_bif_list.m4') ++ ++`#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif' +--- otp-0125/erts/emulator/hipe/hipe_sparc_glue.S.~1~ 2008-11-07 23:44:12.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_sparc_glue.S 2009-02-01 11:36:47.000000000 +0100 +@@ -423,3 +423,7 @@ hipe_sparc_inc_stack: + /* this relies on LOAD_ARG_REGS not clobbering TEMP_ARG0 */ + jmp TEMP_ARG0+8 + ld [P+P_NSP], NSP /* delay slot */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +--- otp-0125/erts/emulator/hipe/hipe_x86_bifs.m4.~1~ 2008-10-27 20:07:09.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_x86_bifs.m4 2009-02-01 11:36:47.000000000 +0100 +@@ -611,3 +611,7 @@ define(gc_bif_interface_2,`standard_bif_ + define(gc_nofail_primop_interface_1,`nofail_primop_interface_1($1, $2)') + + include(`hipe/hipe_bif_list.m4') ++ ++`#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif' +--- otp-0125/erts/emulator/hipe/hipe_x86_glue.S.~1~ 2008-11-07 23:44:12.000000000 +0100 ++++ otp-0125/erts/emulator/hipe/hipe_x86_glue.S 2009-02-01 11:36:47.000000000 +0100 +@@ -395,3 +395,7 @@ ASYM(nbif_inc_stack_0): + LOAD_CALLER_SAVE + SWITCH_C_TO_ERLANG_QUICK + NSP_RET0 ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif |