[ 
https://issues.apache.org/jira/browse/XERCESC-2048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14744294#comment-14744294
 ] 

Keith Marshall commented on XERCESC-2048:
-----------------------------------------

This is just so broken that it beggars belief!

I too encountered this, and my initial reaction to seeing the build instruction 
was to ask "why would that be required?"  In the first place "-no-undefined", 
(or more accurately, the linker flag "--no-undefined"), is *never* required 
when building windows DLLs, (if specified, it is effectively a no-op), so I 
should just be able to ignore this bogus instruction. Not so, of course, 
because not only do the guys who have written this build system not understand 
the purpose of "--no-undefined", they have actually implemented a build time 
test to check that this utterly useless option is specified.

Okay, so even though it does absolutely nothing useful, we must specify this 
nonsense just to get around this build system fault. However, if we do specify 
it as

  ./configure LDFLAGS=-no-undefined

as the build instructions dictate, the configure script must immediately blow 
up, because LDFLAGS are passed to gcc in the compiler identification tests, and 
"-no-undefined" is *not* a valid gcc flag; (it is a linker option, correctly 
specified as "--no-undefined", which can only be passed through gcc in the form 
"-Wl,--no-undefined"). When gcc sees "-no-undefined" it chokes, causing 
configure to abort with (for me) a "compiler cannot create executables" 
exception, (which may seem misleading, but is true when invoked with an invalid 
option, simply because the command line is invalid).

As a quick and dirty workaround for this bug, we may defer the 
"LDFLAGS=-no-undefined" specification to the make step, omitting it from the 
configure command:

  ./configure ...; # do NOT specify "LDFLAGS=-no-undefined" here!
  ...
  make LDFLAGS=-no-undefined

However, the proper solution would be to fix the build system, such that the 
requirement to specify this entirely pointless linker flag is eliminated.

> Error during build on Windows/MinGW because of LDFLAGS=-no-undefined 
> ---------------------------------------------------------------------
>
>                 Key: XERCESC-2048
>                 URL: https://issues.apache.org/jira/browse/XERCESC-2048
>             Project: Xerces-C++
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 3.1.2
>         Environment: Windows 8.1 with MinGW
>            Reporter: Philip Young
>            Priority: Blocker
>
> Followed the build instructions and used ./configure LDFLAGS=-no-undefined
> config.log shows the following:
> Target: mingw32
> Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 
> --build=mingw32 --without-pic --enable-shared --enable-static --with-gnu-ld 
> --enable-lto --enable-libssp --disable-multilib 
> --enable-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions 
> --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug 
> --enable-version-specific-runtime-libs 
> --with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld 
> --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= 
> --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp 
> --enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/mingw 
> --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
> Thread model: win32
> gcc version 4.8.1 (GCC) 
> configure:3781: $? = 0
> configure:3770: g++ -V >&5
> g++.exe: error: unrecognized command line option '-V'
> g++.exe: fatal error: no input files
> compilation terminated.
> configure:3781: $? = 1
> configure:3770: g++ -qversion >&5
> g++.exe: error: unrecognized command line option '-qversion'
> g++.exe: fatal error: no input files
> compilation terminated.
> configure:3781: $? = 1
> configure:3801: checking whether the C++ compiler works
> configure:3823: g++   -no-undefined conftest.cpp  >&5
> g++.exe: error: unrecognized command line option '-no-undefined'
> configure:3827: $? = 1
> configure:3865: result: no
> configure: failed program was:
> | /* confdefs.h */



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to