From owner-freebsd-ports@FreeBSD.ORG Thu Dec 29 14:06:06 2011 Return-Path: Delivered-To: freebsd-ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C52A106564A; Thu, 29 Dec 2011 14:06:06 +0000 (UTC) (envelope-from rhurlin@gwdg.de) Received: from fmailer.gwdg.de (fmailer.gwdg.de [134.76.11.16]) by mx1.freebsd.org (Postfix) with ESMTP id EB3708FC12; Thu, 29 Dec 2011 14:06:05 +0000 (UTC) Received: from pd951ce14.dip.t-dialin.net ([217.81.206.20] helo=krabat.raven.hur) by mailer.gwdg.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1RgGaM-0008Mm-5R; Thu, 29 Dec 2011 15:03:58 +0100 Message-ID: <4EFC73C1.1060303@gwdg.de> Date: Thu, 29 Dec 2011 15:05:53 +0100 From: Rainer Hurling User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20111222 Thunderbird/9.0 MIME-Version: 1.0 To: "O. Hartmann" 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> <4EFC5E72.806@digsys.bg> <4EFC641F.4050900@zedat.fu-berlin.de> In-Reply-To: <4EFC641F.4050900@zedat.fu-berlin.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Authenticated: Id:rhurlin X-Spam-Level: - X-Virus-Scanned: (clean) by exiscan+sophie Cc: Kostik Belousov , freebsd-current@freebsd.org, Ports FreeBSD , Daniel Kalchev 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 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2011 14:06:06 -0000 On 29.12.2011 13:59 (UTC+1), O. Hartmann wrote: > Am 12/29/11 13:34, schrieb Daniel Kalchev: >> >> >> 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. > > Just for the record I'd like to repeat, that the error above mentioned > is also with the legacy FreeBSD's gcc 4.2.X compiler. > > As Kostik Belousov made clear in his last posting, the error occurs due > to a missing -fPIC - which is now clear to me. > > People not sleeping with their OS, like myself, would simply copy the > make.conf from /usr/share/examples/etc/ and set some additional flags. > Then the problem will occur again. Maybe it would be wise to reflect > this issue by some additional words in make.conf? As stated earlier, the following fails in /etc/make.conf for lang/lua: CFLAGS= -O2 -fno-strict-aliasing -pipe -msse3 The next one works ( += instead of = ) and -fPIC is preserved this way: CFLAGS+= -O2 -fno-strict-aliasing -pipe -msse3 Thanks, Kostik and Daniel for clearing this. I think, like Oliver, that this should be mentioned in /etc/make.conf or make.conf(5). Rainer >> 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 > > > Oliver