On Fri, Apr 28, 2017 at 11:12:55AM +0200, Carles Cufi wrote: > From: Carles Cufi <carles.cufi@xxxxxxxxxxxxx> > > The host compiler on MSYS2 and Cygwin does not allow the -fPIC option, > issuing a warning that is treated as an error and stops the build. > Detect whether we're running under MSYS2 or Cygwin and avoid adding > -fPIC to prevent the error from happening. > > Signed-off-by: Carles Cufi <carles.cufi@xxxxxxxxx> Sorry I didn't reply to this sooner. I approve the goal of fixing compile, but I'm not entirely happy with the way it's done here. Rather than altering CFLAGS and LDFLAGS on the fly for everything else, I'd prefer to add a new intermediate variable SHAREDLIB_CFLAGS or similar which is set according to HOSTOS< then included into the standard CFLAGS. We already have a SHAREDLIB_LINK_OPTIONS flag that can do this for the link time flags. > --- > Makefile | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/Makefile b/Makefile > index beca4a0..62fb9b8 100644 > --- a/Makefile > +++ b/Makefile > @@ -18,7 +18,7 @@ CONFIG_LOCALVERSION = > CPPFLAGS = -I libfdt -I . > WARNINGS = -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \ > -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wshadow > -CFLAGS = -g -Os -fPIC -Werror $(WARNINGS) > +CFLAGS = -g -Os -Werror $(WARNINGS) > > BISON = bison > LEX = flex > @@ -33,7 +33,12 @@ LIBDIR = $(PREFIX)/lib > INCLUDEDIR = $(PREFIX)/include > > HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \ > - sed -e 's/\(cygwin\).*/cygwin/') > + sed -e 's/\(cygwin\|msys\).*/\1/') > + > +ifneq ($(HOSTOS),$(filter $(HOSTOS),msys cygwin)) > +CFLAGS += -fPIC > +LDFLAGS += -fPIC > +endif > > ifeq ($(HOSTOS),darwin) > SHAREDLIB_EXT=dylib > @@ -330,7 +335,7 @@ clean: libfdt_clean pylibfdt_clean tests_clean > > $(LIBFDT_lib): > @$(VECHO) LD $@ > - $(CC) $(LDFLAGS) -fPIC $(SHAREDLIB_LINK_OPTIONS)$(LIBFDT_soname) -o $(LIBFDT_lib) $^ > + $(CC) $(LDFLAGS) $(SHAREDLIB_LINK_OPTIONS)$(LIBFDT_soname) -o $(LIBFDT_lib) $^ > > %.lex.c: %.l > @$(VECHO) LEX $@ -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature