| From 1a366eedc0eb4da46da48e9f6e2da27c7b5d2076 Mon Sep 17 00:00:00 2001 |
| From: Gwendal Grignou <gwendal@chromium.org> |
| Date: Fri, 3 Jun 2016 09:17:28 -0700 |
| Subject: [PATCH] Allow compiling xfsprogs in a cross compile environment. |
| |
| Without this patch, we are using the same compiler and options for the host |
| compiler (BUILD_CC) and the target compiler (CC), and we would get error |
| messages at compilation: |
| x86_64-pc-linux-gnu-gcc -O2 -O2 -pipe -march=armv7-a -mtune=cortex-a15 ... |
| x86_64-pc-linux-gnu-gcc.real: error: unrecognized command line option |
| '-mfpu=neon' |
| '-mfloat-abi=hard' |
| '-clang-syntax' |
| '-mfpu=neon' |
| '-mfloat-abi=hard' |
| '-clang-syntax' |
| |
| Add BUILD_CC and BUILD_CFLAGS as precious variables to allow setting it up |
| from the ebuild. |
| |
| Signed-off-by: Gwendal Grignou <gwendal@chromium.org> |
| --- |
| configure | 26 +++++++++++++++++++++----- |
| configure.ac | 20 +++++++++++++++----- |
| include/builddefs.in | 6 ++++-- |
| libxfs/Makefile | 4 ++-- |
| 4 files changed, 42 insertions(+), 14 deletions(-) |
| |
| diff --git a/configure b/configure |
| index 325081f..863a447 100755 |
| --- a/configure |
| +++ b/configure |
| @@ -700,6 +700,7 @@ libreadline |
| enable_blkid |
| enable_gettext |
| enable_shared |
| +BUILD_CFLAGS |
| BUILD_CC |
| CPP |
| LT_SYS_LIBRARY_PATH |
| @@ -806,7 +807,9 @@ LDFLAGS |
| LIBS |
| CPPFLAGS |
| LT_SYS_LIBRARY_PATH |
| -CPP' |
| +CPP |
| +BUILD_CC |
| +BUILD_CFLAGS' |
| |
| |
| # Initialize some variables set by options. |
| @@ -1456,6 +1459,9 @@ Some influential environment variables: |
| LT_SYS_LIBRARY_PATH |
| User-defined run-time library search path. |
| CPP C preprocessor |
| + BUILD_CC C compiler for build tools |
| + BUILD_CFLAGS |
| + C compiler flags for build tools |
| |
| Use these variables to override the choices made by `configure' or to help |
| it to find libraries and programs with nonstandard names/locations. |
| @@ -11957,11 +11963,12 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
| ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
| ac_compiler_gnu=$ac_cv_c_compiler_gnu |
| |
| -if test $cross_compiling = no; then |
| - BUILD_CC="$CC" |
| |
| -else |
| - for ac_prog in gcc cc |
| +if test "${BUILD_CC+set}" != "set"; then |
| + if test $cross_compiling = no; then |
| + BUILD_CC="$CC" |
| + else |
| + for ac_prog in gcc cc |
| do |
| # Extract the first word of "$ac_prog", so it can be a program name with args. |
| set dummy $ac_prog; ac_word=$2 |
| @@ -12003,6 +12010,15 @@ fi |
| test -n "$BUILD_CC" && break |
| done |
| |
| + fi |
| +fi |
| + |
| +if test "${BUILD_CFLAGS+set}" != "set"; then |
| + if test $cross_compiling = no; then |
| + BUILD_CFLAGS="$CFLAGS" |
| + else |
| + BUILD_CFLAGS="-g -O2" |
| + fi |
| fi |
| |
| # Check whether --enable-shared was given. |
| diff --git a/configure.ac b/configure.ac |
| index d44438f..fc286b3 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -9,11 +9,21 @@ AC_PREFIX_DEFAULT(/usr) |
| AC_PROG_LIBTOOL |
| |
| AC_PROG_CC |
| -if test $cross_compiling = no; then |
| - BUILD_CC="$CC" |
| - AC_SUBST(BUILD_CC) |
| -else |
| - AC_CHECK_PROGS(BUILD_CC, gcc cc) |
| +AC_ARG_VAR(BUILD_CC, [C compiler for build tools]) |
| +if test "${BUILD_CC+set}" != "set"; then |
| + if test $cross_compiling = no; then |
| + BUILD_CC="$CC" |
| + else |
| + AC_CHECK_PROGS(BUILD_CC, gcc cc) |
| + fi |
| +fi |
| +AC_ARG_VAR(BUILD_CFLAGS, [C compiler flags for build tools]) |
| +if test "${BUILD_CFLAGS+set}" != "set"; then |
| + if test $cross_compiling = no; then |
| + BUILD_CFLAGS="$CFLAGS" |
| + else |
| + BUILD_CFLAGS="-g -O2" |
| + fi |
| fi |
| |
| AC_ARG_ENABLE(shared, |
| diff --git a/include/builddefs.in b/include/builddefs.in |
| index c2ca4cb..9ca57a6 100644 |
| --- a/include/builddefs.in |
| +++ b/include/builddefs.in |
| @@ -27,6 +27,7 @@ MALLOCLIB = @malloc_lib@ |
| LOADERFLAGS = @LDFLAGS@ |
| LTLDFLAGS = @LDFLAGS@ |
| CFLAGS = @CFLAGS@ |
| +BUILD_CFLAGS = @BUILD_CFLAGS@ |
| |
| LIBRT = @librt@ |
| LIBUUID = @libuuid@ |
| @@ -150,7 +151,7 @@ PCFLAGS+= -DENABLE_BLKID |
| endif |
| |
| |
| -GCFLAGS = $(OPTIMIZER) $(DEBUG) \ |
| +GCFLAGS = $(DEBUG) \ |
| -DVERSION=\"$(PKG_VERSION)\" -DLOCALEDIR=\"$(PKG_LOCALE_DIR)\" \ |
| -DPACKAGE=\"$(PKG_NAME)\" -I$(TOPDIR)/include -I$(TOPDIR)/libxfs |
| |
| @@ -158,8 +159,9 @@ ifeq ($(ENABLE_GETTEXT),yes) |
| GCFLAGS += -DENABLE_GETTEXT |
| endif |
| |
| +BUILD_CFLAGS += $(GCFLAGS) $(PCFLAGS) |
| # First, Global, Platform, Local CFLAGS |
| -CFLAGS += $(FCFLAGS) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) |
| +CFLAGS += $(FCFLAGS) $(OPTIMIZER) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) |
| |
| include $(TOPDIR)/include/buildmacros |
| |
| diff --git a/libxfs/Makefile b/libxfs/Makefile |
| index 873d4ec..8d728c0 100644 |
| --- a/libxfs/Makefile |
| +++ b/libxfs/Makefile |
| @@ -111,7 +111,7 @@ default: crc32selftest ltdepend $(LTLIBRARY) |
| |
| crc32table.h: gen_crc32table.c |
| @echo " [CC] gen_crc32table" |
| - $(Q) $(BUILD_CC) $(CFLAGS) -o gen_crc32table $< |
| + $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -o gen_crc32table $< |
| @echo " [GENERATE] $@" |
| $(Q) ./gen_crc32table > crc32table.h |
| |
| @@ -122,7 +122,7 @@ crc32table.h: gen_crc32table.c |
| # disk. |
| crc32selftest: gen_crc32table.c crc32table.h crc32.c |
| @echo " [TEST] CRC32" |
| - $(Q) $(BUILD_CC) $(CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@ |
| + $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@ |
| $(Q) ./$@ |
| |
| # set up include/xfs header directory |
| -- |
| 2.8.0.rc3.226.g39d4020 |
| |