Possible fix for Perl failing with ../lib/auto/POSIX/POSIX.so:
Undefined symbol "__flt_rounds" on ARM
Tim Kientzle
tim at kientzle.com
Fri Jun 15 03:58:19 UTC 2012
On Jun 14, 2012, at 5:34 AM, Konstantin Belousov wrote:
> On Wed, Jun 13, 2012 at 08:32:19PM -0700, Tim Kientzle wrote:
>> On Jun 12, 2012, at 1:49 AM, Konstantin Belousov wrote:
>>>>>
>>>>> On Jun 5, 2012, at 8:09 AM, Jan Sieka wrote:
>>>>>>
>>>>>>
>>>>>> 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;
>>
>>
>>> If the symbols are used by normal programs, that I think
>>> we should indeed guarantee ABI stability for them, and FBSD_1.3
>>> namespace is the right namespace to use.
>>
>> Why 1.3?
>>
>> This is a common function across every architecture except MIPS right
>> now (and that's probably easily remedied), so why would it be in
>> a different section for different architectures?
>
> The libc.so built as a result is architecture-specific, so it shall
> follow the ABI and ABI history of that architecture. By the project
> policy, a symbol added during the lifetime of CURRENT-10, goes into
> FBSD_1.3 version namespace. What other arches do there is irrelevant.
Changed in r237110.
Tim
More information about the freebsd-arm
mailing list