Segmentation fault

Bill Pringlemeir bpringle@sympatico.ca
Wed Mar 6 19:48:00 GMT 2013


On  6 Mar 2013, mwpowellhtx@gmail.com wrote:

> I ran ldd on the x86 build, and I get not a dynamic executable. So I
> guess meaning there are no shared libraries of any sort. Okay.

Your PC should always return that.  The ldd on the PC is not for 'cross
development'.

> Then I run <cross/>-ldd --root / <app/>, and it doesn't return
> anything to me. But I doubt it would because I'm not linking any known
> libraries to it dynamically.

Do you compile with '-static'?  Then this is not your issue.  Look no
further.

Copy the '<cross/>-ldd' to the target.  It is a shell script.  It starts
with '#!/bin/bash', but you should be able to change to '#!/bin/sh'.  It
uses some environment variables that 'ld.so' examines for debugging.
You can type 'man ld.so' on a PC if you are interested... OR forget this
advice.

You need to have a 'shadow' directory structure setup on the PC to run
the '<cross/>-ldd' on the PC.  

In my experience, it is easy to build a linux kernel than it is to get a
'root file system' correct.  There are a lot of concepts to understand.
Maybe you can try your application with '-static'.  It will be bigger,
but it will tell you if 'libraries' are your issue.  If a '-static'
version works but a 'non-static' does not, then you have 'library
issues'.

hth,
Bill Pringlemeir.


--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list