public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/19176] New: static gcc cannot be build (libgcc_eh.a required for static gcc)
@ 2004-12-28 14:34 hideishi at graduate dot chiba-u dot jp
  2004-12-28 14:38 ` [Bug bootstrap/19176] " hideishi at graduate dot chiba-u dot jp
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: hideishi at graduate dot chiba-u dot jp @ 2004-12-28 14:34 UTC (permalink / raw)
  To: gcc-bugs

gcc 4.0.0 cannot be bootstrap-ed if ./configure was run with --enable-static
--disable-shared.

This is due to the bug in "gcc/config/darwin.h".

     317 /* -dynamiclib implies -shared-libgcc just like -shared would on linux.  */
     318 #define REAL_LIBGCC_SPEC \
     319    "%{static|static-libgcc:-lgcc}\
     320     %{!static:%{!static-libgcc:\
     321       %{!Zdynamiclib:%{!shared-libgcc:-lgcc}\
     322       %{shared-libgcc:-lgcc_s -lgcc}} %{Zdynamiclib:-lgcc_s -lgcc}}}"

The REAL_LIBGCC_SPEC states that libgcc.a AND libgcc_eh.a are required for
static gcc.
(Probably copied from linux or i386 or any other spec files.)

However, in powerpc-apple-darwin7.7.0 (and possibly any of powerpc*-*-darwin*)
this "libgcc_eh.a" is not build during the bootstrap procedure (and also not
required).
So, after the first xgcc is build, bootstarp fails at stage1 by the following error:

/usr/lib/ld: can't locate file for: -lgcc_eh

To fix, simply sed -e 's/ -lgcc_eh//' the gcc/config/darwin.h file.

-- 
           Summary: static gcc cannot be build (libgcc_eh.a required for
                    static gcc)
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: bootstrap
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hideishi at graduate dot chiba-u dot jp
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: powerpc-apple-darwin7.7.0
  GCC host triplet: powerpc-apple-darwin7.7.0
GCC target triplet: powerpc*-*-*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19176


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

* [Bug bootstrap/19176] static gcc cannot be build (libgcc_eh.a required for static gcc)
  2004-12-28 14:34 [Bug bootstrap/19176] New: static gcc cannot be build (libgcc_eh.a required for static gcc) hideishi at graduate dot chiba-u dot jp
@ 2004-12-28 14:38 ` hideishi at graduate dot chiba-u dot jp
  2004-12-28 14:39 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: hideishi at graduate dot chiba-u dot jp @ 2004-12-28 14:38 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From hideishi at graduate dot chiba-u dot jp  2004-12-28 14:37 -------
(In reply to comment #0)
> This is due to the bug in "gcc/config/darwin.h".
> 
>      317 /* -dynamiclib implies -shared-libgcc just like -shared would on
linux.  */
>      318 #define REAL_LIBGCC_SPEC \
>      319    "%{static|static-libgcc:-lgcc}\
>      320     %{!static:%{!static-libgcc:\
>      321       %{!Zdynamiclib:%{!shared-libgcc:-lgcc}\
>      322       %{shared-libgcc:-lgcc_s -lgcc}} %{Zdynamiclib:-lgcc_s -lgcc}}}"

I'm sorry. I attached my "EDITED" version of "gcc/config/darwin.h".
The original one can be viewed at
http://sources.redhat.com/cgi-bin/cvsweb.cgi/gcc/gcc/config/darwin.h?cvsroot=gcc&only_with_tag=MAIN

     317 /* -dynamiclib implies -shared-libgcc just like -shared would on linux.  */
     318 #define REAL_LIBGCC_SPEC \
     319    "%{static|static-libgcc:-lgcc -lgcc_eh}\
     320     %{!static:%{!static-libgcc:\
     321       %{!Zdynamiclib:%{!shared-libgcc:-lgcc -lgcc_eh}\
     322       %{shared-libgcc:-lgcc_s -lgcc}} %{Zdynamiclib:-lgcc_s -lgcc}}}"
 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19176


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

* [Bug bootstrap/19176] static gcc cannot be build (libgcc_eh.a required for static gcc)
  2004-12-28 14:34 [Bug bootstrap/19176] New: static gcc cannot be build (libgcc_eh.a required for static gcc) hideishi at graduate dot chiba-u dot jp
  2004-12-28 14:38 ` [Bug bootstrap/19176] " hideishi at graduate dot chiba-u dot jp
@ 2004-12-28 14:39 ` pinskia at gcc dot gnu dot org
  2004-12-28 15:04 ` hideishi at graduate dot chiba-u dot jp
  2004-12-28 15:16 ` pinskia at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-28 14:39 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-28 14:39 -------
Really only building static is not supported on darwin.  I will look into the problem but only after a week 
if no one else has looked into this.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |minor


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19176


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

* [Bug bootstrap/19176] static gcc cannot be build (libgcc_eh.a required for static gcc)
  2004-12-28 14:34 [Bug bootstrap/19176] New: static gcc cannot be build (libgcc_eh.a required for static gcc) hideishi at graduate dot chiba-u dot jp
  2004-12-28 14:38 ` [Bug bootstrap/19176] " hideishi at graduate dot chiba-u dot jp
  2004-12-28 14:39 ` pinskia at gcc dot gnu dot org
@ 2004-12-28 15:04 ` hideishi at graduate dot chiba-u dot jp
  2004-12-28 15:16 ` pinskia at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: hideishi at graduate dot chiba-u dot jp @ 2004-12-28 15:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From hideishi at graduate dot chiba-u dot jp  2004-12-28 15:04 -------
(In reply to comment #2)
> Really only building static is not supported on darwin.  I will look into the
problem but only after a week 
> if no one else has looked into this.

Yes, I totally agree to your comment.
It is not possible to create a "completely static gcc binary" on darwin.
However, if gcc is built with gcc's shared libraries (i.e. --enable-shared), g++
and gfortran produces binaries that require libgcc_s.dylib for runtime.
In order to distribute gfortran compiled binaries, it is troublesome to handle
with libgcc_s.dylib.
So, what I mean by static gcc is "gcc which produces binaries free of
shared-gcc-libraries".


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19176


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

* [Bug bootstrap/19176] static gcc cannot be build (libgcc_eh.a required for static gcc)
  2004-12-28 14:34 [Bug bootstrap/19176] New: static gcc cannot be build (libgcc_eh.a required for static gcc) hideishi at graduate dot chiba-u dot jp
                   ` (2 preceding siblings ...)
  2004-12-28 15:04 ` hideishi at graduate dot chiba-u dot jp
@ 2004-12-28 15:16 ` pinskia at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-28 15:16 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-28 15:16 -------
(In reply to comment #3)
> (In reply to comment #2)
> > Really only building static is not supported on darwin.  I will look into the
> problem but only after a week 
> > if no one else has looked into this.
> So, what I mean by static gcc is "gcc which produces binaries free of
> shared-gcc-libraries".

And that is a problem, libgcc_s is required for correct running in terms of exceptions.
Also it is not hard to cp libgcc_s with libgfortran and such.
Also telling people to set DYLD_LIBRARY_PATH is not hard, people do it all the time on linux and almost 
all other unix OS's.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19176


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

end of thread, other threads:[~2004-12-28 15:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-28 14:34 [Bug bootstrap/19176] New: static gcc cannot be build (libgcc_eh.a required for static gcc) hideishi at graduate dot chiba-u dot jp
2004-12-28 14:38 ` [Bug bootstrap/19176] " hideishi at graduate dot chiba-u dot jp
2004-12-28 14:39 ` pinskia at gcc dot gnu dot org
2004-12-28 15:04 ` hideishi at graduate dot chiba-u dot jp
2004-12-28 15:16 ` pinskia at gcc dot gnu dot org

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).