Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Jun 2012 17:09:17 +0200
From:      Jan Sieka <jps@semihalf.com>
To:        Ian Lepore <freebsd@damnhippie.dyndns.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Possible fix for Perl failing with ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds" on ARM
Message-ID:  <4FCE211D.10204@semihalf.com>

next in thread | raw e-mail | index | archive | help
Hello Ian!

I tried recently to compile and run Perl 5.12 on ARM (SheevaPlug) using
HEAD from 22.05.2012 and got the following error while trying to run:
/usr/ports/lang/perl5.12 # make test
[...]
../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds
[...]

After investigating the issue it appeared that __flt_rounds symbol is
not exported by libc. Applying the following patch, recompilling world
and Perl fixed the problem and allowed to use Perl on SheevaPlug:

diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
index e8c7f1d..8cdcdaf 100644
--- a/lib/libc/arm/Symbol.map
+++ b/lib/libc/arm/Symbol.map
@@ -70,6 +70,7 @@ FBSDprivate_1.0 {
        __divdf3;
        __floatsisf;
        __floatsidf;
+       __flt_rounds;
        __fixsfsi;
        __fixdfsi;
        __fixunssfsi;

Can you comment whether this is a correct solution?

Best regards,

Jan Sieka



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FCE211D.10204>