This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: calling from one libfoo.a to another


 I admit, I'm unlikely to offer much good advice, as when I've done
this, neither have I cross compiled, nor have I run on an emulated
embedded system :)

My only suggestion is to try to eliminate potential causes.  If you
link in the .o files directly, does it work?  Have you tried a newer
gcc cross compiler?

  Brian

On Wed, Mar 10, 2010 at 2:16 PM,  <travis@subspacefield.org> wrote:
> On Wed, Mar 10, 2010 at 02:07:03PM -0800, Brian Budge wrote:
>> I'm not sure I understand. ?I believe that in the past I've done what
>> you're talking about without issues. ?Do you have a minimal example?
>
> What follows is a minimal example of what I'm trying to do.
> Problem is, on my test system,
> gcc version 4.2.1 (Apple Inc. build 5646) (dot 1)
> it works. ?On my target system, an embedded system that I'm targetting
> with a cross-compiling gcc 3.x, and emulating, it fails.
> My co-worker is reporting on his system that it is segfaulting, and that
> may well be what's happening on the embedded/emulated system. ?I know
> that's a little vague, but the target system is very complex and
> I'm still learning it. ?Troubleshooting is painful... ?at this point
> I'm inferring errors from log files, as opposed to debugging with gdb
> as I would normally.
>
> 14:03:41 travis@sevenheavens 2 0 bash$ cat main.c
> int main () {
> ?weakcall();
> }
> 14:07:53 travis@sevenheavens 2 0 bash$ cat call.c
> extern void weak() __attribute__ ((weak));
>
> void weakcall () { weak(); }
> 14:07:59 travis@sevenheavens 2 0 bash$ cat weak.c
> #include <stdio.h>
>
> void weak() { printf("hi\n"); }
> 14:08:01 travis@sevenheavens 2 0 bash$ cat Makefile
> #! /usr/bin/make -f
>
> all: main.o weak.o
> ? ? ? ?gcc main.o foo.o
>
> libweak.a: weak.o
> ? ? ? ?ar -rcs libweak.a weak.o
>
> libcall.a: call.o
> ? ? ? ?ar -rcs libcall.a call.o
>
> .PHONY: lib
> lib: libweak.a libcall.a main.o
> ? ? ? ?gcc main.o -L. -lweak -lcall
>
> .PHONY: clean
> clean:
> ? ? ? ?rm *.a *.o a.out
> --
> A Weapon of Mass Construction
> My emails do not have attachments; it's a digital signature that your mail
> program doesn't understand. | http://www.subspacefield.org/~travis/
> If you are a spammer, please email john@subspacefield.org to get blacklisted.
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]