Re: calling from one libfoo.a to another

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

 



 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@xxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxx to get blacklisted.
>


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux