Re: [PATCH] Makefile: Fix build on MSYS2 and Cygwin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux