I've submitted 207324 for lang/lua52 needing to use -fPIC (kyua build blocked, clang380-import context)
Mark Millard
markmi at dsl-only.net
Fri Feb 19 22:26:25 UTC 2016
On 2016-Feb-19, at 2:18 PM, Mark Millard <markmi at dsl-only.net> wrote:
>
> On 2016-Feb-19, at 1:35 PM, Ian Lepore <ian at freebsd.org> wrote:
>>
>> On Fri, 2016-02-19 at 12:42 -0800, Russell Haley wrote:
>>> On Fri, Feb 19, 2016 at 12:38 PM, Russell Haley <russ.haley at gmail.com
>>>> wrote:
>>>> On Fri, Feb 19, 2016 at 12:34 PM, Russell Haley <
>>>> russ.haley at gmail.com> wrote:
>>>>> On Fri, Feb 19, 2016 at 11:43 AM, Mark Millard <
>>>>> markmi at dsl-only.net> wrote:
>>>>>> When attempting to build devel/kyua on a rpi2b under
>>>>>> projects/clang380-import -r295601 via portmaster -DK devel/kyua
>>>>>> the attempt failed in lang/lua52 with:
>>>>>>
>>>>>> --- lapi.o ---
>>>>>> /usr/bin/clang -target armv6--freebsd11.0-gnueabi -march=armv7
>>>>>> -a -mcpu=cortex-a7 -mfloat-abi=softfp -mno-unaligned-access
>>>>>> -B/usr/local/arm-gnueabi-freebsd/bin/ -Wall -DLUA_COMPAT_ALL
>>>>>> -pipe -mfloat-abi=softfp -isystem /usr/local/include -g -fno
>>>>>> -strict-aliasing -I/usr/local/include -isystem
>>>>>> /usr/local/include -DLUA_USE_LINUX -c lapi.c -o lapi.o
>>>>>> . . .
>>>>>> --- liblua-5.2.so ---
>>>>>> /usr/local/arm-gnueabi-freebsd/bin/ld: lapi.o: relocation
>>>>>> R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when
>>>>>> making a shared object; recompile with -fPIC
>>>>>> lapi.o: error adding symbols: Bad value
>>>>>> clang: error: linker command failed with exit code 1 (use -v to
>>>>>> see invocation)
>>>>>> *** [liblua-5.2.so] Error code 1
>>>>>>
>>>>> I'm not sure about the kyua stuff, but I was getting a "similar
>>>>> error"
>>>>> when I built lua5.3 using clang on x64. From memory, I recall
>>>>> adding
>>>>> the -fPIC option to the lua5.3 Makefile (as the error indicates)
>>>>> and
>>>>> also having to remove a -luab (or something like that) and then
>>>>> it
>>>>> worked. Potentially you could just install lua from ports first?
>>>>
>>>>> http://www.freshports.org/lang/lua52/
>>>>
>>>> Sorry, I meant pkg. But it looks like it's not being built for
>>>> armv6?
>>>> http://portsmon.freebsd.org/portoverview.py?category=lang&portname=
>>>> lua52
>>>>
>>>> Russ
>>>
>>> Okay, if you look at the Makefile for Lau52 at line 60 there are
>>> -fPIC
>>> cflags for other platforms but armv6 and i386 are missing.
>>>
>>> https://svnweb.freebsd.org/ports/head/lang/lua52/Makefile?view=markup
>>>
>>
>> Are you guys setting CPUTYPE in your make.conf? I've been building
>> lua52 and lua53 for a while without any problems, as crossbuilds or
>> native on a wandboard, but I'm not setting cpu type or arch.
>>
>> Also, why are you using lua52 rather than lua53? (Just curious.)
>>
>> I'm about to commit an unrelated fix for lua53. I'll look into this
>> problem too, if I can figure out how to recreate it.
>>
>> -- Ian
>
> I tried to build devel/kyua via portmaster and lang/lua52 got involved in the process by default. Apparently this is indirectly via devel/lutok being used.
>
> As for one of the example make.conf's that I'm using that results in the behavior:
> (it does target -march=armv7-a -mcpu=cortex-a7 very explicitly)
>
>> # more /etc/make.conf
>> DEFAULT_VERSIONS+=perl5=5.22
>> WRKDIRPREFIX=/usr/obj/portswork
>> WITH_DEBUG=
>> WITH_DEBUG_FILES=
>> MALLOC_PRODUCTION=
>> #
>> TO_TYPE=armv6
>> VERSION_CONTEXT=11.0
>> CFLAGS+=-target ${TO_TYPE}--freebsd${VERSION_CONTEXT}-gnueabi -march=armv7-a -mcpu=cortex-a7 -mfloat-abi=softfp -mno-unaligned-access
>
> Note: the projects/clang380-import -r295601 buildworld/buildkernel context installed on the rpi2 also has those CFLAGS entries.
>
> Other context:
>
>> # svnlite info /usr/ports
>> Path: /usr/ports
>> Working Copy Root Path: /usr/ports
>> URL: https://svn0.us-west.freebsd.org/ports/head
>> Relative URL: ^/head
>> Repository Root: https://svn0.us-west.freebsd.org/ports
>> Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
>> Revision: 408706
>> Node Kind: directory
>> Schedule: normal
>> Last Changed Author: danilo
>> Last Changed Rev: 408706
>> Last Changed Date: 2016-02-11 23:50:55 +0000 (Thu, 11 Feb 2016)
>
>> # freebsd-version -ku; uname -aKU
>> 11.0-CURRENT
>> 11.0-CURRENT
>> FreeBSD rpi2 11.0-CURRENT FreeBSD 11.0-CURRENT #16 r295601M: Sun Feb 14 01:28:43 PST 2016 markmi at FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys/RPI2-NODBG arm 1100097 1100097
I should have noted that without forcing use of /usr/local/arm-gnueabi-freebsd/bin/ld the message is not as explicit about -fPIC:
--- liblua-5.2.so ---
/usr/bin/ld: lauxlib.o(.text+0x1a50): unresolvable R_ARM_MOVW_ABS_NC relocation against symbol `__stdinp@@FBSD_1.0'
/usr/bin/ld: final link failed: Nonrepresentable section on output
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [liblua-5.2.so] Error code 1
I choose to submit based on a make.conf that forced use of /usr/local/arm-gnueabi-freebsd/bin/ tools in order to get the more explicit error message into the submittal.
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-arm
mailing list