autoconf
[Top][All Lists]
Advanced

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

Re: [autoconf] Problems Configuring (C Compiler cannot produce executabl


From: Jeffrey Walton
Subject: Re: [autoconf] Problems Configuring (C Compiler cannot produce executables)
Date: Tue, 21 Aug 2012 23:10:28 -0400

Hi Suzuki,

> So I wonder why you want autoconf
> to "fix" the result caused by your CFLAGS
I was trying to set CFLAGS, CPPFLAGS, etc though `configure`. Its a
supported option, and Autoconf produced the configure file. Where else
would you suggest I look?

> Anyway, you didn't clarified how such special flags are required,
> and the coverages of the objects to be compiled with the special
> flags, so nobody will be able to the answer to be used immediately.
I was not aware hardeneing was considered "special flags" and we had
to justify their usage :) Security conscious folks usually look at it
the other way: we look at a typical project's configuration, and ask
why they are not being used. Anyway, the flags have actually been
around for some time, but most folks don't use them. -1 to those folks
for ignoring awesome platform security measures.

Projects use `configure` to configure all binaries output in a project
- regardless of the binary type (executable or shared object). Though
there may be multiple executables and shared objects, there is only
one configure. So I need something that provides what I
want/desire/require at the single configure point.

I want hardened executables and shared objects. That includes ASLR,
which means -fPIE -pie for executables; -fPIC and -shared for shared
objects. According to the dialog from the GCC feature request, -fPIC
and -shared should be used as it appears to be a "superset" of -fPIE
-pie.

Jeff

On Tue, Aug 21, 2012 at 9:59 PM, suzuki toshiya
<address@hidden> wrote:
> I think your set of CFLAGS makes GCC disabled to make a simple
> executables like "hello world". So I wonder why you want autoconf
> to "fix" the result caused by your CFLAGS. For generic CFLAGS,
> you must set CFLAGS that the compiler can make an executable
> successfully. You gave CFLAGS that the compiler cannot make
> an executable.
>
> Also I've checked the discussion on GCC bugzilla; Andrew Pinski
> mentioned automake, but I don't think he recommends a method using
> "CFLAGS=blahblahblah ./configure". I guess he recommends to write
> configure.am & Makefile.am to insert non-generic & special flags
> in the compiling for shared object.
>
> Anyway, you didn't clarified how such special flags are required,
> and the coverages of the objects to be compiled with the special
> flags, so nobody will be able to the answer to be used immediately.
>
> Regards,
> mpsuzuki
>
> Jeffrey Walton wrote:
>> Hi All,
>>
>> Any ideas on how to fix this? I was using -fPIC/-shared due to
>> limitations in Make and LDFLAGS. According to [1], we can use
>> -fPIC/-shared all the time.
>>
>> $ ./configure CFLAGS="-Wall -Wextra -Wconversion -fPIC
>> -Wno-unused-parameter -Wformat=2 -Wformat-security
>> -fstack-protector-all -Wstrict-overflow -Wl,-shared -Wl,-z,noexecstack
>> -Wl,-z,relro -Wl,-z,now"
>> checking build system type... x86_64-unknown-linux-gnu
>> checking host system type... x86_64-unknown-linux-gnu
>> checking target system type... x86_64-unknown-linux-gnu
>> checking for gcc... gcc
>> checking whether the C compiler works... no
>> configure: error: in `/home/jeffrey/Desktop/sipwitch-1.3.1':
>> configure: error: C compiler cannot create executables
>> See `config.log' for more details
>>
>> Jeff
>>
>> [1] "Request: Add -aslr switch that invokes -fPIE/-pie or
>> -fPIC/-shared as appropriate,"
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52885
>>
>> *****
>>
>> This file contains any messages produced by compilers while
>> running configure, to aid debugging if configure makes a mistake.
>>
>> It was created by configure, which was
>> generated by GNU Autoconf 2.68.  Invocation command line was
>>
>>   $ ./configure CFLAGS=-Wall -Wextra -Wconversion -fPIC
>> -Wno-unused-parameter -Wformat=2 -Wformat-security
>> -fstack-protector-all -Wstrict-overflow -Wl,-shared -Wl,-z,noexecstack
>> -Wl,-z,relro -Wl,-z,now
>>
>> ## --------- ##
>> ## Platform. ##
>> ## --------- ##
>>
>> hostname = mint-12-x64
>> uname -m = x86_64
>> uname -r = 3.0.0-12-generic
>> uname -s = Linux
>> uname -v = #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011
>>
>> /usr/bin/uname -p = unknown
>> /bin/uname -X     = unknown
>>
>> /bin/arch              = unknown
>> /usr/bin/arch -k       = unknown
>> /usr/convex/getsysinfo = unknown
>> /usr/bin/hostinfo      = unknown
>> /bin/machine           = unknown
>> /usr/bin/oslevel       = unknown
>> /bin/universe          = unknown
>>
>> PATH: /usr/lib/lightdm/lightdm
>> PATH: /usr/local/sbin
>> PATH: /usr/local/bin
>> PATH: /usr/sbin
>> PATH: /usr/bin
>> PATH: /sbin
>> PATH: /bin
>> PATH: /usr/games
>>
>>
>> ## ----------- ##
>> ## Core tests. ##
>> ## ----------- ##
>>
>> configure:2456: checking build system type
>> configure:2470: result: x86_64-unknown-linux-gnu
>> configure:2490: checking host system type
>> configure:2503: result: x86_64-unknown-linux-gnu
>> configure:2523: checking target system type
>> configure:2536: result: x86_64-unknown-linux-gnu
>> configure:2611: checking for gcc
>> configure:2627: found /usr/bin/gcc
>> configure:2638: result: gcc
>> configure:2867: checking for C compiler version
>> configure:2876: gcc --version >&5
>> gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
>> Copyright (C) 2011 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.  There is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>>
>> configure:2887: $? = 0
>> configure:2876: gcc -v >&5
>> Using built-in specs.
>> COLLECT_GCC=gcc
>> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/lto-wrapper
>> Target: x86_64-linux-gnu
>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
>> 4.6.1-9ubuntu3'
>> --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
>> --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr
>> --program-suffix=-4.6 --enable-shared --enable-linker-build-id
>> --with-system-zlib --libexecdir=/usr/lib --without-included-gettext
>> --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
>> --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
>> --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin
>> --enable-objc-gc --disable-werror --with-arch-32=i686
>> --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
>> --host=x86_64-linux-gnu --target=x86_64-linux-gnu
>> Thread model: posix
>> gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)
>> configure:2887: $? = 0
>> configure:2876: gcc -V >&5
>> gcc: error: unrecognized option '-V'
>> gcc: fatal error: no input files
>> compilation terminated.
>> configure:2887: $? = 4
>> configure:2876: gcc -qversion >&5
>> gcc: error: unrecognized option '-qversion'
>> gcc: fatal error: no input files
>> compilation terminated.
>> configure:2887: $? = 4
>> configure:2907: checking whether the C compiler works
>> configure:2929: gcc -Wall -Wextra -Wconversion -fPIC
>> -Wno-unused-parameter -Wformat=2 -Wformat-security
>> -fstack-protector-all -Wstrict-overflow -Wl,-shared -Wl,-z,noexecstack
>> -Wl,-z,relro -Wl,-z,now   conftest.c  >&5
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o:
>> relocation R_X86_64_32S against `__libc_csu_fini' can not be used when
>> making a shared object; recompile with -fPIC
>> /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o:
>> could not read symbols: Bad value
>> collect2: ld returned 1 exit status
>> configure:2933: $? = 1
>> configure:2971: result: no
>> configure: failed program was:
>> | /* confdefs.h */
>> | #define PACKAGE_NAME ""
>> | #define PACKAGE_TARNAME ""
>> | #define PACKAGE_VERSION ""
>> | #define PACKAGE_STRING ""
>> | #define PACKAGE_BUGREPORT ""
>> | #define PACKAGE_URL ""
>> | /* end confdefs.h.  */
>> |
>> | int
>> | main ()
>> | {
>> |
>> |   ;
>> |   return 0;
>> | }
>> configure:2976: error: in `/home/jeffrey/Desktop/sipwitch-1.3.1':
>> configure:2978: error: C compiler cannot create executables
>> See `config.log' for more details
>>
>> ## ---------------- ##
>> ## Cache variables. ##
>> ## ---------------- ##
>>
>> ac_cv_build=x86_64-unknown-linux-gnu
>> ac_cv_env_CCC_set=
>> ac_cv_env_CCC_value=
>> ac_cv_env_CC_set=
>> ac_cv_env_CC_value=
>> ac_cv_env_CFLAGS_set=set
>> ac_cv_env_CFLAGS_value='-Wall -Wextra -Wconversion -fPIC
>> -Wno-unused-parameter -Wformat=2 -Wformat-security
>> -fstack-protector-all -Wstrict-overflow -Wl,-shared -Wl,-z,noexecstack
>> -Wl,-z,relro -Wl,-z,now'
>> ac_cv_env_CPPFLAGS_set=
>> ac_cv_env_CPPFLAGS_value=
>> ac_cv_env_CPP_set=
>> ac_cv_env_CPP_value=
>> ac_cv_env_CXXCPP_set=
>> ac_cv_env_CXXCPP_value=
>> ac_cv_env_CXXFLAGS_set=
>> ac_cv_env_CXXFLAGS_value=
>> ac_cv_env_CXX_set=
>> ac_cv_env_CXX_value=
>> ac_cv_env_EXOSIP2_CFLAGS_set=
>> ac_cv_env_EXOSIP2_CFLAGS_value=
>> ac_cv_env_EXOSIP2_LIBS_set=
>> ac_cv_env_EXOSIP2_LIBS_value=
>> ac_cv_env_LDFLAGS_set=
>> ac_cv_env_LDFLAGS_value=
>> ac_cv_env_LIBOSIP2_CFLAGS_set=
>> ac_cv_env_LIBOSIP2_CFLAGS_value=
>> ac_cv_env_LIBOSIP2_LIBS_set=
>> ac_cv_env_LIBOSIP2_LIBS_value=
>> ac_cv_env_LIBS_set=
>> ac_cv_env_LIBS_value=
>> ac_cv_env_PKG_CONFIG_LIBDIR_set=
>> ac_cv_env_PKG_CONFIG_LIBDIR_value=
>> ac_cv_env_PKG_CONFIG_PATH_set=
>> ac_cv_env_PKG_CONFIG_PATH_value=
>> ac_cv_env_PKG_CONFIG_set=
>> ac_cv_env_PKG_CONFIG_value=
>> ac_cv_env_QT_CFLAGS_set=
>> ac_cv_env_QT_CFLAGS_value=
>> ac_cv_env_QT_LIBS_set=
>> ac_cv_env_QT_LIBS_value=
>> ac_cv_env_UCOMMON_CFLAGS_set=
>> ac_cv_env_UCOMMON_CFLAGS_value=
>> ac_cv_env_UCOMMON_LIBS_set=
>> ac_cv_env_UCOMMON_LIBS_value=
>> ac_cv_env_ZEROCONF_CFLAGS_set=
>> ac_cv_env_ZEROCONF_CFLAGS_value=
>> ac_cv_env_ZEROCONF_LIBS_set=
>> ac_cv_env_ZEROCONF_LIBS_value=
>> ac_cv_env_build_alias_set=
>> ac_cv_env_build_alias_value=
>> ac_cv_env_host_alias_set=
>> ac_cv_env_host_alias_value=
>> ac_cv_env_target_alias_set=
>> ac_cv_env_target_alias_value=
>> ac_cv_host=x86_64-unknown-linux-gnu
>> ac_cv_prog_ac_ct_CC=gcc
>> ac_cv_target=x86_64-unknown-linux-gnu
>>
>> ## ----------------- ##
>> ## Output variables. ##
>> ## ----------------- ##
>>
>> ACLOCAL=''
>> AMDEPBACKSLASH=''
>> AMDEP_FALSE=''
>> AMDEP_TRUE=''
>> AMTAR=''
>> AR=''
>> AS=''
>> AUTOCONF=''
>> AUTOHEADER=''
>> AUTOMAKE=''
>> AWK=''
>> CC='gcc'
>> CCDEPMODE=''
>> CFLAGS='-Wall -Wextra -Wconversion -fPIC -Wno-unused-parameter
>> -Wformat=2 -Wformat-security -fstack-protector-all -Wstrict-overflow
>> -Wl,-shared -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now'
>> CPP=''
>> CPPFLAGS=''
>> CXX=''
>> CXXCPP=''
>> CXXDEPMODE=''
>> CXXFLAGS=''
>> CYGPATH_W=''
>> DAEMON_LIBS=''
>> DEFS=''
>> DEPDIR=''
>> DLLTOOL=''
>> DLOPEN=''
>> DSYMUTIL=''
>> DUMPBIN=''
>> ECHO_C=''
>> ECHO_N='-n'
>> ECHO_T=''
>> EGREP=''
>> EXEEXT=''
>> EXOSIP2_CFLAGS=''
>> EXOSIP2_LIBS=''
>> EXPORT_FLAGS=''
>> EXPORT_LIBS=''
>> FGREP=''
>> GREP=''
>> INCLUDE_FLAGS=''
>> INITRDDIR=''
>> INSTALL_DATA=''
>> INSTALL_PROGRAM=''
>> INSTALL_SCRIPT=''
>> INSTALL_STRIP_PROGRAM=''
>> LD=''
>> LDFLAGS=''
>> LIBOBJS=''
>> LIBOSIP2_CFLAGS=''
>> LIBOSIP2_LIBS=''
>> LIBS=''
>> LIBTOOL=''
>> LIPO=''
>> LN_S=''
>> LTLIBOBJS=''
>> LT_VERSION='1:6:0'
>> MAKEINFO=''
>> MANIFEST_TOOL=''
>> MKDIR_P=''
>> MOC=''
>> MODFLAGS=''
>> NETWORK_DOWN=''
>> NETWORK_RELOAD=''
>> NETWORK_UP=''
>> NM=''
>> NMEDIT=''
>> OBJDUMP=''
>> OBJEXT=''
>> OTOOL64=''
>> OTOOL=''
>> PACKAGE=''
>> PACKAGE_BUGREPORT=''
>> PACKAGE_NAME=''
>> PACKAGE_STRING=''
>> PACKAGE_TARNAME=''
>> PACKAGE_URL=''
>> PACKAGE_VERSION=''
>> PATH_SEPARATOR=':'
>> PKG_CONFIG=''
>> PKG_CONFIG_LIBDIR=''
>> PKG_CONFIG_PATH=''
>> QTAPPS=''
>> QT_CFLAGS=''
>> QT_LIBS=''
>> RANLIB=''
>> RCC=''
>> SED=''
>> SET_MAKE=''
>> SHELL='/bin/bash'
>> SIPWITCH_EXOSIP2=''
>> SIPWITCH_FLAGS=''
>> SIPWITCH_LIBS=''
>> STATIC_MODULES_FALSE=''
>> STATIC_MODULES_TRUE=''
>> STRIP=''
>> UCOMMON=''
>> UCOMMON_CFLAGS=''
>> UCOMMON_CLINK=''
>> UCOMMON_LIBS=''
>> UCOMMON_LINK=''
>> UCOMMON_MODEL=''
>> UCOMMON_REQUIRES='5.2.0'
>> UIC=''
>> USECURE_LINK=''
>> VERSION='1.3.1'
>> ZEROCONF_CFLAGS=''
>> ZEROCONF_FALSE=''
>> ZEROCONF_LIBS=''
>> ZEROCONF_TRUE=''
>> ac_ct_AR=''
>> ac_ct_CC='gcc'
>> ac_ct_CXX=''
>> ac_ct_DUMPBIN=''
>> am__EXEEXT_FALSE=''
>> am__EXEEXT_TRUE=''
>> am__fastdepCC_FALSE=''
>> am__fastdepCC_TRUE=''
>> am__fastdepCXX_FALSE=''
>> am__fastdepCXX_TRUE=''
>> am__include=''
>> am__isrc=''
>> am__leading_dot=''
>> am__nodep=''
>> am__quote=''
>> am__tar=''
>> am__untar=''
>> bindir='${exec_prefix}/bin'
>> build='x86_64-unknown-linux-gnu'
>> build_alias=''
>> build_cpu='x86_64'
>> build_os='linux-gnu'
>> build_vendor='unknown'
>> cgibindir=''
>> datadir='${datarootdir}'
>> datarootdir='${prefix}/share'
>> default_cfgpath=''
>> default_incpath=''
>> default_libexec=''
>> default_libpath=''
>> default_varpath=''
>> docdir='${datarootdir}/doc/${PACKAGE}'
>> dvidir='${docdir}'
>> exec_prefix='NONE'
>> host='x86_64-unknown-linux-gnu'
>> host_alias=''
>> host_cpu='x86_64'
>> host_os='linux-gnu'
>> host_vendor='unknown'
>> htmldir='${docdir}'
>> includedir='${prefix}/include'
>> infodir='${datarootdir}/info'
>> install_sh=''
>> libdir='${exec_prefix}/lib'
>> libexecdir='${exec_prefix}/libexec'
>> localedir='${datarootdir}/locale'
>> localstatedir='${prefix}/var'
>> mandir='${datarootdir}/man'
>> mkdir_p=''
>> oldincludedir='/usr/include'
>> pdfdir='${docdir}'
>> plugindir=''
>> prefix='NONE'
>> prefix_libdir=''
>> program_transform_name='s,x,x,'
>> psdir='${docdir}'
>> sbindir='${exec_prefix}/sbin'
>> sharedstatedir='${prefix}/com'
>> sysconfdir='${prefix}/etc'
>> target='x86_64-unknown-linux-gnu'
>> target_alias=''
>> target_cpu='x86_64'
>> target_os='linux-gnu'
>> target_vendor='unknown'
>> translatedir=''
>> translations=''
>>
>> ## ----------- ##
>> ## confdefs.h. ##
>> ## ----------- ##
>>
>> /* confdefs.h */
>> #define PACKAGE_NAME ""
>> #define PACKAGE_TARNAME ""
>> #define PACKAGE_VERSION ""
>> #define PACKAGE_STRING ""
>> #define PACKAGE_BUGREPORT ""
>> #define PACKAGE_URL ""
>>
>> configure: exit 77
>>
>> _______________________________________________
>> Autoconf mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/autoconf
>
>
> _______________________________________________
> Autoconf mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/autoconf



reply via email to

[Prev in Thread] Current Thread [Next in Thread]