public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* framestate.c vs --enable-oldest-abi=2.2.5
@ 2002-03-20 16:28 Roland McGrath
  2002-03-22  3:23 ` Jakub Jelinek
  2002-04-05 21:10 ` Ulrich Drepper
  0 siblings, 2 replies; 11+ messages in thread
From: Roland McGrath @ 2002-03-20 16:28 UTC (permalink / raw)
  To: GNU libc hackers; +Cc: Jakub Jelinek

To build with --enable-oldest-abi=2.2.5 (which in Hurd configurations is
implied by --enable-libio, and will be the default for 2.3), I seem to need
the following change to avoid every dynamic and -shared link in the build
failing.  Is this right?  I am assuming that for the no-compatibility case,
this stuff is supposed to just come from -lgcc; but is that in fact the plan?

With this change the build mostly works, but static linking (of sln) fails
due to undefined __register_frame_info_bases and
__deregister_frame_info_bases referenced by gcc's crtbegin.o.  Is that just
a problem in my gcc installation?  (I built this gcc from cvs last week.)
Or am I confused about what should be happening here?

I complained about this lossage before and got absolute silence.  Jakub,
can you please look at this or at least give me the capsule summary of what
the picture is supposed to look like for a no-compatibility configuration
using just libc 2.2.x and gcc 3.x?


Thanks,
Roland



2002-03-20  Roland McGrath  <roland@frob.com>

	* sysdeps/generic/framestate.c [EXPORT_UNWIND_FIND_FDE]:
	Conditionalize contents on this.

Index: framestate.c
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/generic/framestate.c,v
retrieving revision 1.1
diff -u -b -p -r1.1 framestate.c
--- framestate.c	2001/11/16 01:16:54	1.1
+++ framestate.c	2002/03/21 00:21:44
@@ -1,5 +1,5 @@
 /* __frame_state_for unwinder helper function wrapper.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001,02 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
 
@@ -18,6 +18,8 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#if EXPORT_UNWIND_FIND_FDE
+
 #include <dlfcn.h>
 #include <stdlib.h>
 #define __frame_state_for fallback_frame_state_for
@@ -45,3 +47,5 @@ __frame_state_for (void *pc, struct fram
 
   return frame_state_for (pc, frame_state);
 }
+
+#endif

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-20 16:28 framestate.c vs --enable-oldest-abi=2.2.5 Roland McGrath
@ 2002-03-22  3:23 ` Jakub Jelinek
  2002-03-22  9:26   ` Ulrich Drepper
  2002-03-22 10:44   ` Roland McGrath
  2002-04-05 21:10 ` Ulrich Drepper
  1 sibling, 2 replies; 11+ messages in thread
From: Jakub Jelinek @ 2002-03-22  3:23 UTC (permalink / raw)
  To: Roland McGrath; +Cc: GNU libc hackers

On Wed, Mar 20, 2002 at 07:27:58PM -0500, Roland McGrath wrote:
> To build with --enable-oldest-abi=2.2.5 (which in Hurd configurations is
> implied by --enable-libio, and will be the default for 2.3), I seem to need
> the following change to avoid every dynamic and -shared link in the build
> failing.  Is this right?  I am assuming that for the no-compatibility case,
> this stuff is supposed to just come from -lgcc; but is that in fact the plan?

Actually not from -lgcc, but either from -lgcc_eh (for static linking) and
-lgcc_s (for shared libs).

> With this change the build mostly works, but static linking (of sln) fails
> due to undefined __register_frame_info_bases and
> __deregister_frame_info_bases referenced by gcc's crtbegin.o.  Is that just
> a problem in my gcc installation?  (I built this gcc from cvs last week.)

Probably yes (or in Hurd gcc specs). If gcc -static, then gcc should pass
-lgcc_eh -lgcc on the command line and thus the registry should be
in the link. Can you please mail gcc -v output for the failed sln link?

BTW: What binutils you used during gcc 3.1/2 configury?

> Or am I confused about what should be happening here?
> 
> I complained about this lossage before and got absolute silence.  Jakub,
> can you please look at this or at least give me the capsule summary of what
> the picture is supposed to look like for a no-compatibility configuration
> using just libc 2.2.x and gcc 3.x?

> 2002-03-20  Roland McGrath  <roland@frob.com>
> 
> 	* sysdeps/generic/framestate.c [EXPORT_UNWIND_FIND_FDE]:
> 	Conditionalize contents on this.

If Ulrich agrees on the #if, fine. It is IMHO better to do this in one place
then having to change 6 or how many Makefiles.

	Jakub

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-22  3:23 ` Jakub Jelinek
@ 2002-03-22  9:26   ` Ulrich Drepper
       [not found]     ` <20020322123340.R1213@devserv.devel.redhat.com>
  2002-03-22 10:44   ` Roland McGrath
  1 sibling, 1 reply; 11+ messages in thread
From: Ulrich Drepper @ 2002-03-22  9:26 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Roland McGrath, GNU libc hackers

[-- Attachment #1: Type: text/plain, Size: 517 bytes --]

On Fri, 2002-03-22 at 03:22, Jakub Jelinek wrote:

> If Ulrich agrees on the #if, fine. It is IMHO better to do this in one place
> then having to change 6 or how many Makefiles.

Do you mean using Roland's patch and avoid adding the references?  This
would certainly be preferrable.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
       [not found]     ` <20020322123340.R1213@devserv.devel.redhat.com>
@ 2002-03-22  9:44       ` Ulrich Drepper
  2002-03-22  9:47         ` Jakub Jelinek
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Drepper @ 2002-03-22  9:44 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Roland McGrath, GNU libc hackers

[-- Attachment #1: Type: text/plain, Size: 812 bytes --]

On Fri, 2002-03-22 at 09:33, Jakub Jelinek wrote:

> I meant using Roland's patch and avoid changing
> sysdeps/unix/sysv/linux/*/Makefile and hurd Makefile to:
> 
> -ifeq (yes,$(build-shared))
> +ifeq (yesyes,$(build-shared)$(unwind-find-fde))
>  # This is needed to support g++ v2 and v3.
>  sysdep_routines += framestate
>  shared-only-routines += framestate
>  endif
>  endif

This would only help platforms without the need for any of the backward
compatibility stuff.  What if an ABI version is selected for x86?  It
also should strip out as much code as possible.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-22  9:44       ` Ulrich Drepper
@ 2002-03-22  9:47         ` Jakub Jelinek
  2002-03-22  9:55           ` Ulrich Drepper
  0 siblings, 1 reply; 11+ messages in thread
From: Jakub Jelinek @ 2002-03-22  9:47 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Roland McGrath, GNU libc hackers

On Fri, Mar 22, 2002 at 09:43:56AM -0800, Ulrich Drepper wrote:
> On Fri, 2002-03-22 at 09:33, Jakub Jelinek wrote:
> 
> > I meant using Roland's patch and avoid changing
> > sysdeps/unix/sysv/linux/*/Makefile and hurd Makefile to:
> > 
> > -ifeq (yes,$(build-shared))
> > +ifeq (yesyes,$(build-shared)$(unwind-find-fde))
> >  # This is needed to support g++ v2 and v3.
> >  sysdep_routines += framestate
> >  shared-only-routines += framestate
> >  endif
> >  endif
> 
> This would only help platforms without the need for any of the backward
> compatibility stuff.  What if an ABI version is selected for x86?  It
> also should strip out as much code as possible.

If you select 2.3 ABI on x86, then $(unwind-find-fde) will be no and thus
framestate.c will not be compiled in.

	Jakub

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-22  9:47         ` Jakub Jelinek
@ 2002-03-22  9:55           ` Ulrich Drepper
  2002-03-22 10:20             ` Jakub Jelinek
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Drepper @ 2002-03-22  9:55 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Roland McGrath, GNU libc hackers

[-- Attachment #1: Type: text/plain, Size: 486 bytes --]

On Fri, 2002-03-22 at 09:47, Jakub Jelinek wrote:

> If you select 2.3 ABI on x86, then $(unwind-find-fde) will be no and thus
> framestate.c will not be compiled in.

If this is true for all te ABIs one can select then the Makefile changes
seems best.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-22  9:55           ` Ulrich Drepper
@ 2002-03-22 10:20             ` Jakub Jelinek
  2002-03-22 12:00               ` Andreas Schwab
  0 siblings, 1 reply; 11+ messages in thread
From: Jakub Jelinek @ 2002-03-22 10:20 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Roland McGrath, GNU libc hackers

On Fri, Mar 22, 2002 at 09:55:31AM -0800, Ulrich Drepper wrote:
> On Fri, 2002-03-22 at 09:47, Jakub Jelinek wrote:
> 
> > If you select 2.3 ABI on x86, then $(unwind-find-fde) will be no and thus
> > framestate.c will not be compiled in.
> 
> If this is true for all te ABIs one can select then the Makefile changes
> seems best.

It is only true for the recent ABIs:

if test "$oldest_abi" != default && test "2.2.4" \< "$oldest_abi"; then
  libc_cv_gcc_unwind_find_fde=no
fi

but that's IMHO desirable.

	Jakub

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-22  3:23 ` Jakub Jelinek
  2002-03-22  9:26   ` Ulrich Drepper
@ 2002-03-22 10:44   ` Roland McGrath
  1 sibling, 0 replies; 11+ messages in thread
From: Roland McGrath @ 2002-03-22 10:44 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: GNU libc hackers

> Actually not from -lgcc, but either from -lgcc_eh (for static linking) and
> -lgcc_s (for shared libs).

Ah, ok.  I will look for that in future.

> Probably yes (or in Hurd gcc specs). If gcc -static, then gcc should pass
> -lgcc_eh -lgcc on the command line and thus the registry should be
> in the link. Can you please mail gcc -v output for the failed sln link?

Since -nostdlib is used, I don't think gcc is at fault here.

redhat 32 % i686-gnu-gcc -nostdlib -nostartfiles -static -o
/home/roland/gnu/build/2iolibc/elf/sln
/home/roland/gnu/build/2iolibc/csu/crt0.o
/home/roland/gnu/build/2iolibc/csu/crti.o `i686-gnu-gcc
--print-file-name=crtbegin.o` /home/roland/gnu/build/2iolibc/elf/sln.o
-Wl,-\( /home/roland/gnu/build/2iolibc/libc.a
/home/roland/gnu/build/2iolibc/mach/libmachuser.a
/home/roland/gnu/build/2iolibc/hurd/libhurduser.a -lgcc -Wl,-\)
`i686-gnu-gcc --print-file-name=crtend.o`
/home/roland/gnu/build/2iolibc/csu/crtn.o -v
Reading specs from /usr/local/lib/gcc-lib/i686-gnu/3.2/specs
Configured with: ../../gcc/configure --host=i686-linux --target=i686-gnu :
(reconfigured)  : (reconfigured)  : (reconfigured) 
Thread model: single
gcc version 3.2 20020315 (experimental)
 /usr/local/lib/gcc-lib/i686-gnu/3.2/collect2 -m elf_i386 -static -o
 /home/roland/gnu/build/2iolibc/elf/sln
 -L/usr/local/lib/gcc-lib/i686-gnu/3.2
 -L/usr/local/lib/gcc-lib/i686-gnu/3.2/../../../../i686-gnu/lib
 /home/roland/gnu/build/2iolibc/csu/crt0.o
 /home/roland/gnu/build/2iolibc/csu/crti.o
 /usr/local/lib/gcc-lib/i686-gnu/3.2/crtbegin.o
 /home/roland/gnu/build/2iolibc/elf/sln.o -(
 /home/roland/gnu/build/2iolibc/libc.a
 /home/roland/gnu/build/2iolibc/mach/libmachuser.a
 /home/roland/gnu/build/2iolibc/hurd/libhurduser.a -lgcc -)
 /usr/local/lib/gcc-lib/i686-gnu/3.2/crtend.o
 /home/roland/gnu/build/2iolibc/csu/crtn.o
/usr/local/lib/gcc-lib/i686-gnu/3.2/crtbegin.o: In function
`__do_global_dtors_aux':
/usr/local/lib/gcc-lib/i686-gnu/3.2/crtbegin.o(.text+0x36): undefined
reference to `__deregister_frame_info_bases'
/usr/local/lib/gcc-lib/i686-gnu/3.2/crtbegin.o(.text+0x46): undefined
reference to `__deregister_frame_info_bases'
/usr/local/lib/gcc-lib/i686-gnu/3.2/crtbegin.o: In function `frame_dummy':
/usr/local/lib/gcc-lib/i686-gnu/3.2/crtbegin.o(.text+0x62): undefined
reference to `__register_frame_info_bases'
/usr/local/lib/gcc-lib/i686-gnu/3.2/crtbegin.o(.text+0x97): undefined
reference to `__register_frame_info_bases'
collect2: ld returned 1 exit status

> BTW: What binutils you used during gcc 3.1/2 configury?

Some stock RH version probably from 7.1, no visibility support.  (I'm not
really trying to make a usable build here, just identify the compile
problems.)

> If Ulrich agrees on the #if, fine. It is IMHO better to do this in one place
> then having to change 6 or how many Makefiles.

Since framestate.c is in sysdeps/generic, why not put the makefile fragment
there too and have it controlled entirely by checking $(unwind-find-fde)?
That also gets rid of the existing duplication in
sysdeps/{mach/hurd,unix/sysv/linux}/*/Makefile.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-22 10:20             ` Jakub Jelinek
@ 2002-03-22 12:00               ` Andreas Schwab
  0 siblings, 0 replies; 11+ messages in thread
From: Andreas Schwab @ 2002-03-22 12:00 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Ulrich Drepper, Roland McGrath, GNU libc hackers

Jakub Jelinek <jakub@redhat.com> writes:

|> if test "$oldest_abi" != default && test "2.2.4" \< "$oldest_abi"; then
                                            ^^^^^^^^^^^^^^^^^^^^^^^^

This does not work.  "test 2.2.4 < 2.10.0" is false.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE GmbH, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-03-20 16:28 framestate.c vs --enable-oldest-abi=2.2.5 Roland McGrath
  2002-03-22  3:23 ` Jakub Jelinek
@ 2002-04-05 21:10 ` Ulrich Drepper
  2002-04-05 21:15   ` Roland McGrath
  1 sibling, 1 reply; 11+ messages in thread
From: Ulrich Drepper @ 2002-04-05 21:10 UTC (permalink / raw)
  To: Roland McGrath; +Cc: GNU libc hackers, Jakub Jelinek

[-- Attachment #1: Type: text/plain, Size: 488 bytes --]

On Wed, 2002-03-20 at 16:27, Roland McGrath wrote:

> 2002-03-20  Roland McGrath  <roland@frob.com>
> 
> 	* sysdeps/generic/framestate.c [EXPORT_UNWIND_FIND_FDE]:
> 	Conditionalize contents on this.

What was the outcome of the discussion of this patch?

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: framestate.c vs --enable-oldest-abi=2.2.5
  2002-04-05 21:10 ` Ulrich Drepper
@ 2002-04-05 21:15   ` Roland McGrath
  0 siblings, 0 replies; 11+ messages in thread
From: Roland McGrath @ 2002-04-05 21:15 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: GNU libc hackers, Jakub Jelinek

> On Wed, 2002-03-20 at 16:27, Roland McGrath wrote:
> 
> > 2002-03-20  Roland McGrath  <roland@frob.com>
> > 
> > 	* sysdeps/generic/framestate.c [EXPORT_UNWIND_FIND_FDE]:
> > 	Conditionalize contents on this.
> 
> What was the outcome of the discussion of this patch?

That was superceded by the makefile changes with log entry dated 2002-03-23.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2002-04-06  5:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-20 16:28 framestate.c vs --enable-oldest-abi=2.2.5 Roland McGrath
2002-03-22  3:23 ` Jakub Jelinek
2002-03-22  9:26   ` Ulrich Drepper
     [not found]     ` <20020322123340.R1213@devserv.devel.redhat.com>
2002-03-22  9:44       ` Ulrich Drepper
2002-03-22  9:47         ` Jakub Jelinek
2002-03-22  9:55           ` Ulrich Drepper
2002-03-22 10:20             ` Jakub Jelinek
2002-03-22 12:00               ` Andreas Schwab
2002-03-22 10:44   ` Roland McGrath
2002-04-05 21:10 ` Ulrich Drepper
2002-04-05 21:15   ` Roland McGrath

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).