Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7a37c76ee25fa3c3de54644f67e86a2f.squirrel@alpha.tmit.bme.hu>
Date: Tue, 9 Apr 2013 22:15:40 +0200
From: meres5@...ha.tmit.bme.hu
To: musl@...ts.openwall.com
Subject: Re: vfprintf.c:(.text+0xc6c): undefined reference to
 `__signbitl'

Hi!

I have good, and bad news concerning this issue!

>
> this is bad, it is 'double-double' long double format
> which means broken long double arithmetics
>

Its the out of the box debian, installed on our
old IBM eServer pSeries 615 (7029 6C3).
Surprisingly a native PPC host/target/and everything. . .

> if you want to play with static linking then it's better
> not to use soft-float long double, that ruins it a lot

Well, we won't made any REAL (floating point) thing on this
old machine. Performance is not an issue here.

> (every trivial program will get an entire floating point
> emulation library linked in from libgcc pulled in by printf
> so the students will get the impression that static linking
> always gives bloated binaries..)

The picture is not that bad.
Finally I managed to unleash the two functions in question
in ~/src/musl-0.9.9/src/math: __signbitl and __fpclassifyl with some
#if bombing and voilla!

root@...ha:/home/meres5/tmp# ld crt1.o stdhello.o -L. -lc -lgcc -o stdhello
root@...ha:/home/meres5/tmp# chroot . ./stdhello
Hello

worked and its 'only' 25k.

> the correct thing to do is to build a toolchain with 64bit
> long double

I won't touch the Debian tool chain. . .
We are on PPC and not cross compiling for PSP3 :-)

>> Anyway, it's been 19 years passed, so my guide seemed not so
>> durable.
>> Also Linux dropped the concept of static linking in practivce.
>> Goodby kiss to
>
> linux did not drop it, but for some reason the glibc and
> binutils maintainers thought that dynamic linking is always
> better so it's enough to support that
Yep.
Finally I got it - thanks for the MUSL team!

And the good news:
 - worked
 - I have checked several other libc for embedded, supporting static ld
   and only musl prevails with some really little hack in source.
   Others claimed broken tool-chain (by being surprised not in a
   cross compling toolchain)

Bad news:
 - Someone had better to have a look at those conditionals in
   __signbitl.c and __fpclassifyl.c

Regards
m5

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.