Message ID | 1442398203-46701-1-git-send-email-Vincent.Riera@imgtec.com |
---|---|
State | Accepted |
Headers | show |
Dear Vicente Olivert Riera, On Wed, 16 Sep 2015 11:10:03 +0100, Vicente Olivert Riera wrote: > The Makefile of libselinux performs the following check: > > ARCH := $(patsubst i%86,i386,$(shell uname -m)) > ifneq (,$(filter i386,$(ARCH))) > TLSFLAGS += -mno-tls-direct-seg-refs > endif > > Which means that if the host machine is an x86, then TLSFLAGS will > contain -mno-tls-direct-seg-refs. That command line option causes > libselinux to fail when building it for target architectures where the > compiler doesn't support that option, i.e. MIPS: > > mips-img-linux-gnu-gcc: error: unrecognized command line option > ‘-mno-tls-direct-seg-refs’ > > So to fix that problem we can set the ARCH variable to $(KERNEL_ARCH), > and then append it to the LIBSELINUX_MAKE_OPTS. > > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Looks good to me: Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> I'm surprised we never caught this through the autobuilder testing, but I guess all autobuilder machines are x86_64 based, which will not exhibit the problem. Thanks! Thomas
Dear Thomas Petazzoni, On 09/16/2015 11:39 AM, Thomas Petazzoni wrote: > Dear Vicente Olivert Riera, > > On Wed, 16 Sep 2015 11:10:03 +0100, Vicente Olivert Riera wrote: >> The Makefile of libselinux performs the following check: >> >> ARCH := $(patsubst i%86,i386,$(shell uname -m)) >> ifneq (,$(filter i386,$(ARCH))) >> TLSFLAGS += -mno-tls-direct-seg-refs >> endif >> >> Which means that if the host machine is an x86, then TLSFLAGS will >> contain -mno-tls-direct-seg-refs. That command line option causes >> libselinux to fail when building it for target architectures where the >> compiler doesn't support that option, i.e. MIPS: >> >> mips-img-linux-gnu-gcc: error: unrecognized command line option >> ‘-mno-tls-direct-seg-refs’ >> >> So to fix that problem we can set the ARCH variable to $(KERNEL_ARCH), >> and then append it to the LIBSELINUX_MAKE_OPTS. >> >> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> > > Looks good to me: > > Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > I'm surprised we never caught this through the autobuilder testing, but > I guess all autobuilder machines are x86_64 based, which will not > exhibit the problem. Yeah, I set a new autobuilder to run only MIPS builds since currently there aren't many autobuild failures to look at (I needed more!), and I put it on a x86 virtual machine just to also catch possible issues due to building on a 32-bit host machine, and because I already had another autobuilder running on a x86_64 host. And look, I have already catch one! :D Thanks for the review. Regards, Vincent. > Thanks! > > Thomas >
Hello, On Wed, 16 Sep 2015 11:46:41 +0100, Vicente Olivert Riera wrote: > > I'm surprised we never caught this through the autobuilder testing, but > > I guess all autobuilder machines are x86_64 based, which will not > > exhibit the problem. > > Yeah, I set a new autobuilder to run only MIPS builds since currently > there aren't many autobuild failures to look at (I needed more!), and I > put it on a x86 virtual machine just to also catch possible issues due > to building on a 32-bit host machine, and because I already had another > autobuilder running on a x86_64 host. And look, I have already catch one! :D Great! Do you want an account to submit your build results automatically to autobuild.buildroot.org? Best regards, Thomas
Hi Thomas, On 09/16/2015 12:41 PM, Thomas Petazzoni wrote: > Hello, > > On Wed, 16 Sep 2015 11:46:41 +0100, Vicente Olivert Riera wrote: > >>> I'm surprised we never caught this through the autobuilder testing, but >>> I guess all autobuilder machines are x86_64 based, which will not >>> exhibit the problem. >> >> Yeah, I set a new autobuilder to run only MIPS builds since currently >> there aren't many autobuild failures to look at (I needed more!), and I >> put it on a x86 virtual machine just to also catch possible issues due >> to building on a 32-bit host machine, and because I already had another >> autobuilder running on a x86_64 host. And look, I have already catch one! :D > > Great! Do you want an account to submit your build results > automatically to autobuild.buildroot.org? yes, please. Thanks, Vincent. > Best regards, > > Thomas >
Dear Vicente Olivert Riera, On Wed, 16 Sep 2015 11:10:03 +0100, Vicente Olivert Riera wrote: > The Makefile of libselinux performs the following check: > > ARCH := $(patsubst i%86,i386,$(shell uname -m)) > ifneq (,$(filter i386,$(ARCH))) > TLSFLAGS += -mno-tls-direct-seg-refs > endif > > Which means that if the host machine is an x86, then TLSFLAGS will > contain -mno-tls-direct-seg-refs. That command line option causes > libselinux to fail when building it for target architectures where the > compiler doesn't support that option, i.e. MIPS: > > mips-img-linux-gnu-gcc: error: unrecognized command line option > ‘-mno-tls-direct-seg-refs’ > > So to fix that problem we can set the ARCH variable to $(KERNEL_ARCH), > and then append it to the LIBSELINUX_MAKE_OPTS. > > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> > --- > package/libselinux/libselinux.mk | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) Applied, thanks. Thomas
diff --git a/package/libselinux/libselinux.mk b/package/libselinux/libselinux.mk index e6a7c6b..d4b96c4 100644 --- a/package/libselinux/libselinux.mk +++ b/package/libselinux/libselinux.mk @@ -15,7 +15,8 @@ LIBSELINUX_INSTALL_STAGING = YES LIBSELINUX_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ - LDFLAGS="$(TARGET_LDFLAGS) -lpcre -lpthread" + LDFLAGS="$(TARGET_LDFLAGS) -lpcre -lpthread" \ + ARCH=$(KERNEL_ARCH) define LIBSELINUX_BUILD_CMDS # DESTDIR is needed during the compile to compute library and
The Makefile of libselinux performs the following check: ARCH := $(patsubst i%86,i386,$(shell uname -m)) ifneq (,$(filter i386,$(ARCH))) TLSFLAGS += -mno-tls-direct-seg-refs endif Which means that if the host machine is an x86, then TLSFLAGS will contain -mno-tls-direct-seg-refs. That command line option causes libselinux to fail when building it for target architectures where the compiler doesn't support that option, i.e. MIPS: mips-img-linux-gnu-gcc: error: unrecognized command line option ‘-mno-tls-direct-seg-refs’ So to fix that problem we can set the ARCH variable to $(KERNEL_ARCH), and then append it to the LIBSELINUX_MAKE_OPTS. Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> --- package/libselinux/libselinux.mk | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)