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>