discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Working gcc version to compile GNUstep


From: Stéphane Goujet
Subject: Re: Working gcc version to compile GNUstep
Date: Tue, 22 Feb 2005 18:17:16 +0200
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

Quentin Mathé a écrit :
and with the last 4.0.0 version I tried, there is another problem already in the configure step (because gcc-4.0.0 can't link properly an Objective-C program that has a .c extension).
… otherwise why not replace the .c extension by .m ?

It's the configure script (of gnustep-base) which constructs a file named (I believe) conftest.c in which is included the Objective-C file config/config.objc.m .

  I described the problem on gcc-help mailing list but got no answer.
  I can reproduce the text of my messages here :

------------------------------------------------------------- 1 ------

Let's name an Objective-C program main.m :

> gcc main.m -lobjc
...works fine.

  If we name the very same program main.c :

> gcc -x objective-c main.c -lobjc
...gives :
/usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.0.0/../../../../powerpc-unknown-linux-gnu/bin/ld: a.out: hidden symbol `_Unwind_GetIP' in /usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.0.0/libgcc_eh.a(unwind-dw2.o) is referenced by DSO
collect2: ld returned 1 exit status


Then if I take the same main.m and process it in 2 steps :

> gcc -c main.m
...works fine

> gcc main.o -lobjc
...gives the same error message


  Af far as I can tell, those problems did not show up with gcc-3.4.x .
  If you have any idea about the problem and/or the solution...

NB: gcc is 4.0.0 20050213
    computer is an Apple powerpc running Linux 2.4.16

NB2: the computer on which I ran the tests is not the same as this one I use to write this e-mail, so I typed the error message with my little fingers, which means there can/will be copying errors.

NB3: I have a very small example program if you ask for it, and please ask for any piece of information that you think would be useful.

----------------------------------------------------------------------
------------------------------------------------------------- 2 ------
With gcc -v, I can see :

>   Let's name an Objective-C program main.m :
>  > gcc main.m -lobjc
> ...works fine.


collect2 is called with libraries : -lobjc -lgcc_s -lgcc -lc

>   If we name the very same program main.c :
>  > gcc -x objective-c main.c -lobjc


collect2 is called with libraries : -lobjc -lgcc_eh -lgcc -lc

So, if I add now this libgcc_s :

>gcc -x objective-c main.c -lobjc -lgcc_s
... works fine !

  What are those libraries (libgcc_s, libgcc_eh) ?
Why does gcc try to link with different libraries just because the file extension is different ? Why does now (4.0.0) libgcc_eh depend on libgcc_s ? (This is not the case with a gcc-3.4.x).
----------------------------------------------------------------------

Goodbye,
         Stéphane Goujet.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]