Okay, it looks like this is the source:

https://launchpad.net/ubuntu/+source/eglibc/2.12.1-0ubuntu6

So I downloaded it and tried building it. (I got eglibc-ports-2.12
from cross-lfs.org, which was the only one I could find anywhere.)  I
already have an ARM environment (using the linaro 4.5.4 I built), so I
figured I could just build it, without all the cross-compile
contortions. It actually looked like it might even work -- but it
failed on the compile of sigrestorer.o:

../../eglibc-ports-2.12/sysdeps/unix/sysv/linux/arm/sigrestorer.S:
Assembler messages:
../../eglibc-ports-2.12/sysdeps/unix/sysv/linux/arm/sigrestorer.S:30:
Error: previous CFI entry not closed (missing .cfi_endproc)
../../eglibc-ports-2.12/sysdeps/unix/sysv/linux/arm/sigrestorer.S:31:
Error: open CFI at the end of file; missing .cfi_endproc directive
make[2]: *** [/home/diane/src/eglibc/build/signal/sigrestorer.o] Error 1
make[2]: Leaving directory `/home/diane/src/eglibc/eglibc-2.12.1/signal'
make[1]: *** [signal/subdir_lib] Error 2
make[1]: Leaving directory `/home/diane/src/eglibc/eglibc-2.12.1'
make: *** [all] Error 2

Googling the error turned up this:

"I think you are making things much more complicated than necessary.  It
seems more likely that all that's needed is adding END calls to match the
ENTRY ones in sysdeps/unix/sysv/linux/arm/sigrestorer.S.  Note that
old-ABI has been essentially unmaintained for a long time now; I strongly
recommend moving to EABI.  sysdeps/unix/sysv/linux/arm/eabi/sigrestorer.S
has the END calls and the file you reference should not be used at all in
an EABI build."

 I did do what was suggested (added the END calls), which got me past
that error -- but I hit another one, compiling getrlimit.o:

In file included from
../../eglibc-ports-2.12/sysdeps/unix/sysv/linux/arm/getrlimit.c:1:0:
../sysdeps/unix/sysv/linux/i386/getrlimit.c: In function '__new_getrlimit':
../sysdeps/unix/sysv/linux/i386/getrlimit.c:65:1: error:
'__NR_getrlimit' undeclared (first use in this function)
../sysdeps/unix/sysv/linux/i386/getrlimit.c:65:1: note: each
undeclared identifier is reported only once for each function it
appears in
make[2]: *** [/home/diane/src/eglibc/build/resource/getrlimit.o] Error 1
make[2]: Leaving directory `/home/diane/src/eglibc/eglibc-2.12.1/resource'
make[1]: *** [resource/subdir_lib] Error 2

Why it's compiling a file in an i386 subdir, I have no idea :P

So, given what joseph said about sigrestorer.S shouldn't even be in
the build, and given this error, I'm worried that either I don't have
the right ports file, or I'm just not building this right.

Matthias, are you the one who's building this source? If you are, do
you have any instructions on how to do it? I really, really need an
unstripped ld-2.12.1.so, and it looks like building it myself is the
only way I can get one.

Thanks,
D.

On Thu, Jul 21, 2011 at 12:38 PM, Diane Holt <holt.di...@gmail.com> wrote:
>
> On Thu, Jul 21, 2011 at 12:04 PM, Matthias Klose <d...@ubuntu.com> wrote:
>>
>> the files in /usr/lib/debug are built with objcopy --only-keep-debug, so only
>> include the debug info. the stripped files get a debug link added (objcopy
>> --add-gnu-debuglink).
>
> Well, that would explain that :(   I had assumed they were just the full, 
> unstripped versions of the libs. Would those be available from anywhere?
>
>>
>> Did that work in the past?
>
> What worked in the past was having a loader lib that wasn't stripped (we 
> would later do a 'strip --strip-unneeded --strip-debug' on it, which is fine 
> -- it's just when it's completely stripped of all symbols that valgrind can't 
> function). That's when we were using the 4.4.1 from CodeSourcery (none of the 
> libs are stripped). Switching to linaro means I have to build the toolchain 
> myself, and its build just picks up the libs from the 
> libc6_2.12.1-0ubuntu6_armel.deb package, and those libs are fully stripped.
>
>> Can valgrind handle detached debug information?
>
> I doubt it (can't think how that would work... but I'm open to suggestions).
>
>>
>> If not, then maybe call dh_strip in the eglibc package with -Xld-2.13.so
>
> I'm not building eglibc -- the linaro build process doesn't include doing 
> that, and I don't have any information on how libc6_2.12.1-0ubuntu6_armel.deb 
> (what the linaro build process uses) was built.
>
> Thanks,
> Diane
>

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to