clang with mingw feedback

Hi,

I am trying to compile clang on windows using lateste msys/mingw on
Windows 7 and I get a compilation error :

llvm[4]: Linking Debug executable clang
"C:/Developer/msys/1.0/bin/ld.exe": warning: --export-dynamic is not
supported for PE targets, did you mean --export-all-symbols?
C:/Developer/msys/1.0/home/Vincent/tmp/llvm/Debug/lib/libLLVMCodeGen.a:
could not read symbols: Memory exhausted
collect2: ld returned 1 exit status
make[4]: *** [/home/Vincent/tmp/llvm/Debug/bin/clang.exe] Error 1
make[4]: Leaving directory
`/home/Vincent/tmp/llvm/tools/clang/tools/driver'

I suppose this problem is in the way autotools are configured, as the
message says I suppose it should be --export-all-symbols.
About the memory exhausted it may be due to some bug on msys so I will
retry mingw from a linux box.
I search for "--export-dynamic and here is the result :

Makefile.config:RDYNAMIC := -Wl,-export-dynamic
autoconf/configure.ac:dnl Determine whether the linker supports the
-export-dynamic option.
autoconf/configure.ac: RDYNAMIC="-Wl,-export-dynamic"
autoconf/ltmain.sh: -export-dynamic)
autoconf/ltmain.sh: # If -module or -export-dynamic was specified, set the
dlname.
autoconf/ltmain.sh: test -n "$library_names" && $echo "$modename:
warning: \`$file' was not linked with \`-export-dynamic'"
autoconf/ltmain.sh: -export-dynamic allow symbols from OUTPUT-FILE to
be resolved with dlsym(3)
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/link_options.m4:[AC_CACHE_CHECK([for compiler
-Wl,-export-dynamic option],
autoconf/m4/link_options.m4: CFLAGS="$CFLAGS -Wl,-export-dynamic"
autoconf/m4/link_options.m4:
AC_DEFINE([HAVE_LINK_EXPORT_DYNAMIC],[1],[Define if you can use
-Wl,-export-dynamic.])
config.status:s,@RDYNAMIC@,|#_!!_#|-Wl\,-export-dynamic,g
configure:{ echo "$as_me:$LINENO: checking for compiler
-Wl,-export-dynamic option" >&5
configure:echo $ECHO_N "checking for compiler -Wl,-export-dynamic
option... $ECHO_C" >&6; }
configure: CFLAGS="$CFLAGS -Wl,-export-dynamic"
configure: export_dynamic_flag_spec='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_F77='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
configure: RDYNAMIC="-Wl,-export-dynamic"
include/llvm/Config/config.h:/* Define if you can use -Wl,-export-dynamic.
*/
include/llvm/Config/config.h.in:/* Define if you can use
-Wl,-export-dynamic. */
lib/ExecutionEngine/JIT/Intercept.cpp: * linking with libc_nonshared.a and
-Wl,--export-dynamic doesn't make 'stat'
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
mklib: -export-dynamic)
mklib: # If -module or -export-dynamic was specified, set the dlname.
mklib: test -n "$library_names" && $echo "$modename: warning: \`$file'
was not linked with \`-export-dynamic'"
mklib: -export-dynamic allow symbols from OUTPUT-FILE to be resolved
with dlsym(3)
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
tools/llvm-ld/Optimize.cpp:static cl::alias
ExportDynamic("export-dynamic",

Which one should I modify ?

Hi,

I am trying to compile clang on windows using lateste msys/mingw on
Windows 7 and I get a compilation error :

llvm[4]: Linking Debug executable clang
"C:/Developer/msys/1.0/bin/ld.exe": warning: --export-dynamic is not
supported for PE targets, did you mean --export-all-symbols?
C:/Developer/msys/1.0/home/Vincent/tmp/llvm/Debug/lib/libLLVMCodeGen.a:
could not read symbols: Memory exhausted
collect2: ld returned 1 exit status
make[4]: *** [/home/Vincent/tmp/llvm/Debug/bin/clang.exe] Error 1
make[4]: Leaving directory
`/home/Vincent/tmp/llvm/tools/clang/tools/driver'

I suppose this problem is in the way autotools are configured, as the
message says I suppose it should be --export-all-symbols.
About the memory exhausted it may be due to some bug on msys so I will
retry mingw from a linux box.
I search for "--export-dynamic and here is the result :

Makefile.config:RDYNAMIC := -Wl,-export-dynamic
autoconf/configure.ac:dnl Determine whether the linker supports the
-export-dynamic option.
autoconf/configure.ac: RDYNAMIC="-Wl,-export-dynamic"
autoconf/ltmain.sh: -export-dynamic)
autoconf/ltmain.sh: # If -module or -export-dynamic was specified, set

the

dlname.
autoconf/ltmain.sh: test -n "$library_names" && $echo "$modename:
warning: \`$file' was not linked with \`-export-dynamic'"
autoconf/ltmain.sh: -export-dynamic allow symbols from OUTPUT-FILE to
be resolved with dlsym(3)
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/link_options.m4:[AC_CACHE_CHECK([for compiler
-Wl,-export-dynamic option],
autoconf/m4/link_options.m4: CFLAGS="$CFLAGS -Wl,-export-dynamic"
autoconf/m4/link_options.m4:
AC_DEFINE([HAVE_LINK_EXPORT_DYNAMIC],[1],[Define if you can use
-Wl,-export-dynamic.])
config.status:s,@RDYNAMIC@,|#_!!_#|-Wl\,-export-dynamic,g
configure:{ echo "$as_me:$LINENO: checking for compiler
-Wl,-export-dynamic option" >&5
configure:echo $ECHO_N "checking for compiler -Wl,-export-dynamic
option... $ECHO_C" >&6; }
configure: CFLAGS="$CFLAGS -Wl,-export-dynamic"
configure: export_dynamic_flag_spec='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_F77='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
configure: RDYNAMIC="-Wl,-export-dynamic"
include/llvm/Config/config.h:/* Define if you can use

-Wl,-export-dynamic.

*/
include/llvm/Config/config.h.in:/* Define if you can use
-Wl,-export-dynamic. */
lib/ExecutionEngine/JIT/Intercept.cpp: * linking with libc_nonshared.a

and

-Wl,--export-dynamic doesn't make 'stat'
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
mklib: -export-dynamic)
mklib: # If -module or -export-dynamic was specified, set the dlname.
mklib: test -n "$library_names" && $echo "$modename: warning: \`$file'
was not linked with \`-export-dynamic'"
mklib: -export-dynamic allow symbols from OUTPUT-FILE to be resolved
with dlsym(3)
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
tools/llvm-ld/Optimize.cpp:static cl::alias
ExportDynamic("export-dynamic",

Which one should I modify ?

After having replaced export-dynamic by export-all-symbols I got an error
from the linker : memory exhausted.
Since I was compiling on Windows with msys/mingw and we cannot be sure
that the bug is not from msys, I am
trying to compile it on linux/macos.

CC=i686-w64-mingw32-gcc ./configure --host=i686-w64-mingw32

configure: error: Already configured in /Users/vrichomme/src/llvm
make[1]: *** No targets specified and no makefile found. Stop.
make: *** [cross-compile-build-tools] Error 1

how can I cross-compile it ?

Hi,

I am trying to compile clang on windows using lateste msys/mingw on
Windows 7 and I get a compilation error :

llvm[4]: Linking Debug executable clang
"C:/Developer/msys/1.0/bin/ld.exe": warning: --export-dynamic is not
supported for PE targets, did you mean --export-all-symbols?
C:/Developer/msys/1.0/home/Vincent/tmp/llvm/Debug/lib/libLLVMCodeGen.a:
could not read symbols: Memory exhausted
collect2: ld returned 1 exit status
make[4]: *** [/home/Vincent/tmp/llvm/Debug/bin/clang.exe] Error 1
make[4]: Leaving directory
`/home/Vincent/tmp/llvm/tools/clang/tools/driver'

I suppose this problem is in the way autotools are configured, as the
message says I suppose it should be --export-all-symbols.
About the memory exhausted it may be due to some bug on msys so I will
retry mingw from a linux box.
I search for "--export-dynamic and here is the result :

Makefile.config:RDYNAMIC := -Wl,-export-dynamic
autoconf/configure.ac:dnl Determine whether the linker supports the
-export-dynamic option.
autoconf/configure.ac: RDYNAMIC="-Wl,-export-dynamic"
autoconf/ltmain.sh: -export-dynamic)
autoconf/ltmain.sh: # If -module or -export-dynamic was specified, set

the

dlname.
autoconf/ltmain.sh: test -n "$library_names" && $echo "$modename:
warning: \`$file' was not linked with \`-export-dynamic'"
autoconf/ltmain.sh: -export-dynamic allow symbols from OUTPUT-FILE

to

be resolved with dlsym(3)
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/libtool.m4: _LT_AC_TAGVAR(export_dynamic_flag_spec,
$1)='${wl}--export-dynamic'
autoconf/m4/link_options.m4:[AC_CACHE_CHECK([for compiler
-Wl,-export-dynamic option],
autoconf/m4/link_options.m4: CFLAGS="$CFLAGS -Wl,-export-dynamic"
autoconf/m4/link_options.m4:
AC_DEFINE([HAVE_LINK_EXPORT_DYNAMIC],[1],[Define if you can use
-Wl,-export-dynamic.])
config.status:s,@RDYNAMIC@,|#_!!_#|-Wl\,-export-dynamic,g
configure:{ echo "$as_me:$LINENO: checking for compiler
-Wl,-export-dynamic option" >&5
configure:echo $ECHO_N "checking for compiler -Wl,-export-dynamic
option... $ECHO_C" >&6; }
configure: CFLAGS="$CFLAGS -Wl,-export-dynamic"
configure: export_dynamic_flag_spec='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_F77='${wl}--export-dynamic'
configure: export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
configure: RDYNAMIC="-Wl,-export-dynamic"
include/llvm/Config/config.h:/* Define if you can use

-Wl,-export-dynamic.

*/
include/llvm/Config/config.h.in:/* Define if you can use
-Wl,-export-dynamic. */
lib/ExecutionEngine/JIT/Intercept.cpp: * linking with libc_nonshared.a

and

-Wl,--export-dynamic doesn't make 'stat'
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
mklib: -export-dynamic)
mklib: # If -module or -export-dynamic was specified, set the dlname.
mklib: test -n "$library_names" && $echo "$modename: warning:

\`$file'

was not linked with \`-export-dynamic'"
mklib: -export-dynamic allow symbols from OUTPUT-FILE to be resolved
with dlsym(3)
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
mklib:export_dynamic_flag_spec="\${wl}--export-dynamic"
tools/llvm-ld/Optimize.cpp:static cl::alias
ExportDynamic("export-dynamic",

Which one should I modify ?

After having replaced export-dynamic by export-all-symbols I got an

error

from the linker : memory exhausted.
Since I was compiling on Windows with msys/mingw and we cannot be sure
that the bug is not from msys, I am
trying to compile it on linux/macos.

CC=i686-w64-mingw32-gcc ./configure --host=i686-w64-mingw32

configure: error: Already configured in /Users/vrichomme/src/llvm
make[1]: *** No targets specified and no makefile found. Stop.
make: *** [cross-compile-build-tools] Error 1

how can I cross-compile it ?

Finally I managed to compile llvm/clang using msys/mingw with compiler
from mingw-w64(no more
memory exhausted error - seems they provide a compiler of better quality).
Only surprise is size in Debug : 323 MB for clang (21 MB once stripped)...

On Sat, 23 Jan 2010 00:07:30 +0100, "Vincent R."

<forumer@smartmobili.com>

Finally I managed to compile llvm/clang using msys/mingw with compiler
from mingw-w64(no more
memory exhausted error - seems they provide a compiler of better quality).

Good to know, thanks for reporting this!

Only surprise is size in Debug : 323 MB for clang (21 MB once stripped)...

Sadly, that's not too much of a surprise. Debug information for Clang is huge.

  - Doug