This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Export __enable_execute_stack
- From: Jakub Jelinek <jakub at redhat dot com>
- To: David Edelsohn <dje at watson dot ibm dot com>, Alan Modra <amodra at bigpond dot net dot au>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 14 Jun 2004 07:23:24 -0400
- Subject: Re: [PATCH] Export __enable_execute_stack
- References: <200406111537.59593.ebotcazou@act-europe.fr>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Fri, Jun 11, 2004 at 03:40:13PM +0200, Eric Botcazou wrote:
> Hi,
>
> This patch lets libgcc.so export __enable_execute_stack (the function is
> required for trampoline support on Solaris, NetBSD, FreeBSD/SPARC64 and OSF).
> I added a new target macro ENABLE_EXECUTE_STACK so as to uncouple it from
> TRANSFER_FROM_TRAMPOLINE.
BTW: on ppc-linux at least (but I think darwin too and maybe others)
__trampoline_setup is not exported from libgcc_s. Shouldn't it be exported
as well (@GCC_3.3.4 or @GCC_3.4.1)?
It causes Ada bootstrap failure: libgnat-3.4.so.1 is linked with gcc -shared
-shared-libgcc and uses this function, so has it as undefined reference.
This means no program can link against that shared library, as ld will die
with:
(cd ada/bldtools; gnatmake -q xeinfo ; ./xeinfo ../einfo.h )
gcc -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -DHAVE_CONFIG_H -I. -Iada -I../../gcc -I../../gcc/ada -I../../gcc/../include ../../gcc/ada/link.c -o ada/link.o
/usr/bin/ld: xnmake: hidden symbol `__trampoline_setup' in /usr/lib/gcc/ppc64-redhat-linux/3.4.0/libgcc.a(tramp.oS) is referenced by DSO
collect2: ld returned 1 exit status
Jakub