Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Dec 2011 14:34:58 +0200
From:      Daniel Kalchev <daniel@digsys.bg>
To:        freebsd-current@freebsd.org
Subject:   Re: lang/lua: /usr/bin/ld: lapi.o: relocation R_X86_64_32 against `luaO_nilobject_' can not be used when making a shared object; recompile with -fPIC
Message-ID:  <4EFC5E72.806@digsys.bg>
In-Reply-To: <4EFC5ACD.5010701@zedat.fu-berlin.de>
References:  <4EFAF3FC.60002@zedat.fu-berlin.de> <20111228135808.GW50300@deviant.kiev.zoral.com.ua> <4EFB2344.3000302@zedat.fu-berlin.de> <20111228142957.GX50300@deviant.kiev.zoral.com.ua> <4EFB447D.3000808@gwdg.de> <20111228181054.GF1895@hoeg.nl> <4EFB5E0C.90302@zedat.fu-berlin.de> <20111228183132.GB50300@deviant.kiev.zoral.com.ua> <4EFC4579.6060608@gwdg.de> <4EFC4CCC.3050507@zedat.fu-berlin.de> <20111229115904.GH50300@deviant.kiev.zoral.com.ua> <4EFC5ACD.5010701@zedat.fu-berlin.de>

next in thread | previous in thread | raw e-mail | index | archive | help


On 29.12.11 14:19, O. Hartmann wrote:
> Am 12/29/11 12:59, schrieb Kostik Belousov:
>> On Thu, Dec 29, 2011 at 12:19:40PM +0100, O. Hartmann wrote:
>>> [...]
>>> /usr/bin/ld: lapi.o: relocation R_X86_64_32 against `luaO_nilobject_'
>>> can not be used when making a shared object; recompile with -fPIC
>>> lapi.o: could not read symbols: Bad value
>>> clang: error: linker command failed with exit code 1 (use -v to see
>>> invocation)
>>> *** Error code 1
>>>
>>> Stop in /usr/ports/lang/lua/work/lua-5.1.4/src.
>>> *** Error code 1
>>>
>>> Stop in /usr/ports/lang/lua/work/lua-5.1.4/src.
>>> *** Error code 1
>>>
>>> Stop in /usr/ports/lang/lua/work/lua-5.1.4.
>>> *** Error code 1
>>>
>>> Stop in /usr/ports/lang/lua.
>>>
>>> ===>>>  make failed for lang/lua
>>> ===>>>  Aborting update
>>>
>>> Terminated
>>> Terminated
>>>
>>> This is very strange!
>> What is strange ? It is exactly the same problem as in the first message
>> started this thread. You must use -fPIC flag for compiler when compiling
>> objects that shall be later linked into dso. So, for lua case, -fPIC
>> must be present on the cc -c command line.
> This therefore strange, since this problem with lua occurs on machines,
> where I've set "CFLAGS=" and "COPTFLAGS=" as in
> /usr/share/examples/etc/make.conf and on one box, one box I accidentally
> set those flags to "CFLAGS+=" and "COPTFLAGS+=" and there it works and
> the -fPIC flag is set by the FreeBSD's port framework.
>
> So I guess there is a bug introduced with one of the last Mk-files updates.
>

As suggested by the "howto" for using newer GCC versions, 
http://www.freebsd.org/doc/en/articles/custom-gcc/article.html you are 
supposed to use CFLAGS+= to add additional compile flags.

By the way, "-O2 -fno-strict-aliasing -pipe" are the default flags, that 
are used when CFLAGS is not set by the user.

COPTFLAGS is used only to build the kernel and doing it with non-system 
GCC is not likely to be safe.

Daniel



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