[LLVMdev] mingw build problems

Jay Foad jay.foad at gmail.com
Fri Apr 17 12:39:31 PDT 2009


>> but I don't understand what they are for. Do they let lli execute
>> programs in which the compiler has hard-coded calls to __eprintf? Does
>> that mean that __eprintf ought to be found in libgcc?
> Yes. And I believe it was there, at least for "official mingw gcc",
> which is 3.4.5. Could you please investigate why you don't have this
> in your libgcc? Is it gcc v3 vs v4 issue?

GCC's gcc/configure has this logic:

# If this is using newlib, without having the headers available now,
# then define inhibit_libc in LIBGCC2_CFLAGS.
# This prevents libgcc2 from containing any code which requires libc
# support.
inhibit_libc=false
if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
       test x$with_newlib = xyes ; } &&
     { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
       inhibit_libc=true
fi

Debian's mingw32 package is built with host != target, and without the
--with-sysroot and --with-headers options. So this logic kicks in, and
prevents __eprintf from being built in libgcc.a, since it calls into
libc.

>From this discussion:

http://gcc.gnu.org/ml/gcc-patches/2001-05/msg00780.html

it sounds like only code built with GCC 2.x will refer to __eprintf.

Thanks,
Jay.



More information about the llvm-dev mailing list