[Mingw-w64-public] Kai Tietz break cross build gcc on r2945 due to delete FLT/DBL/LDBL_MANT_DIG macros

2010-07-28 Thread Dongsheng Song
Hi Kai,

When we cross build gcc 4.5 for windows, I found we can build windows gcc 
binary one
week ago, but now the build failed.

After I do a binary search, I found the issue caused by r2945.

r2950 | 2010-07-24 05:50:28 | FAILED
r2945 | 2010-07-24 02:44:15 | FAILED
r2944 | 2010-07-24 02:38:30 | SUCCESS
r2939 | 2010-07-23 17:55:30 | SUCCESS
r2928 | 2010-07-23 05:21:20 | SUCCESS
r2924 | 2010-07-22 18:32:25 | SUCCESS

r2945 remove some *IMPORTANT* macros from /trunk/mingw-w64-headers/crt/float.h,
e.g. FLT/DBL/LDBL_MANT_DIG, FLT_EVAL_METHOD, *ALL* decimal macros 
(DEC32/64/128_*, ...)

When I add FLT/DBL/LDBL_MANT_DIG and FLT_EVAL_METHOD back to 
/trunk/mingw-w64-headers/crt/float.h,
then the gcc cross build success again.

So I recommend you apply the attached patch at least.

btw, I know FLT_EVAL_METHOD added by C99, but libgfortran/m4/nearest.m4 use it,
is it mean we should use ISO C99 compiler to build gcc 4.5 or later, not ISO 
C90 as
http://gcc.gnu.org/install/prerequisites.html ?

Regards,
Dongsheng
Index: mingw-w64-headers/crt/float.h
===
--- mingw-w64-headers/crt/float.h   (revision 2984)
+++ mingw-w64-headers/crt/float.h   (working copy)
@@ -31,6 +31,33 @@
 #define_MCW_RC 0x0300  /* Rounding */
 #define_MCW_PC 0x0003  /* Precision */
 
+/* Number of base-FLT_RADIX digits in the significand, p.  */
+#undef FLT_MANT_DIG
+#undef DBL_MANT_DIG
+#undef LDBL_MANT_DIG
+#define FLT_MANT_DIG   __FLT_MANT_DIG__
+#define DBL_MANT_DIG   __DBL_MANT_DIG__
+#define LDBL_MANT_DIG  __LDBL_MANT_DIG__
+
+#if defined (__STDC_VERSION__)  __STDC_VERSION__ = 199901L
+/* The floating-point expression evaluation method.
+-1  indeterminate
+ 0  evaluate all operations and constants just to the range and
+precision of the type
+ 1  evaluate operations and constants of type float and double
+to the range and precision of the double type, evaluate
+long double operations and constants to the range and
+precision of the long double type
+ 2  evaluate all operations and constants to the range and
+precision of the long double type
+
+   ??? This ought to change with the setting of the fp control word;
+   the value provided by the compiler assumes the widest setting.  */
+#undef FLT_EVAL_METHOD
+#define FLT_EVAL_METHOD__FLT_EVAL_METHOD__
+
+#endif /* C99 */
+
 /* Control word values for unNew (use with related unMask above) */
 #define_DN_SAVE0x
 #define_DN_FLUSH   0x0100


signature.asc
Description: OpenPGP digital signature
--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share 
of $1 Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Kai Tietz break cross build gcc on r2945 due to delete FLT/DBL/LDBL_MANT_DIG macros

2010-07-28 Thread Kai Tietz
2010/7/28 Dongsheng Song dongsheng.s...@gmail.com:
 Hi Kai,

 When we cross build gcc 4.5 for windows, I found we can build windows gcc 
 binary one
 week ago, but now the build failed.

 After I do a binary search, I found the issue caused by r2945.

    r2950 | 2010-07-24 05:50:28 | FAILED
    r2945 | 2010-07-24 02:44:15 | FAILED
    r2944 | 2010-07-24 02:38:30 | SUCCESS
    r2939 | 2010-07-23 17:55:30 | SUCCESS
    r2928 | 2010-07-23 05:21:20 | SUCCESS
    r2924 | 2010-07-22 18:32:25 | SUCCESS

 r2945 remove some *IMPORTANT* macros from 
 /trunk/mingw-w64-headers/crt/float.h,
 e.g. FLT/DBL/LDBL_MANT_DIG, FLT_EVAL_METHOD, *ALL* decimal macros 
 (DEC32/64/128_*, ...)

 When I add FLT/DBL/LDBL_MANT_DIG and FLT_EVAL_METHOD back to 
 /trunk/mingw-w64-headers/crt/float.h,
 then the gcc cross build success again.

 So I recommend you apply the attached patch at least.

 btw, I know FLT_EVAL_METHOD added by C99, but libgfortran/m4/nearest.m4 use 
 it,
 is it mean we should use ISO C99 compiler to build gcc 4.5 or later, not ISO 
 C90 as
 http://gcc.gnu.org/install/prerequisites.html ?

 Regards,
 Dongsheng

Hello Dongsheng,

the recent change to float.h was necessary to support the new
include_next patch of 4.6. So how are you exactly installing headers?
As usual you should just see gcc's internal float.h for older gcc's
then 4.6. So I am a bit puzzled. Are you removing gcc's float.h here?

Regards,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| ()_() him gain world domination

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share 
of $1 Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Kai Tietz break cross build gcc on r2945 due to delete FLT/DBL/LDBL_MANT_DIG macros

2010-07-28 Thread Ozkan Sezer
On Wed, Jul 28, 2010 at 10:54 AM, Dongsheng Song
dongsheng.s...@gmail.com wrote:
 于 2010-7-28 15:43, Kai Tietz 写道:
 2010/7/28 Dongsheng Song dongsheng.s...@gmail.com:
 Hi Kai,

 When we cross build gcc 4.5 for windows, I found we can build windows gcc 
 binary one
 week ago, but now the build failed.

 After I do a binary search, I found the issue caused by r2945.

    r2950 | 2010-07-24 05:50:28 | FAILED
    r2945 | 2010-07-24 02:44:15 | FAILED
    r2944 | 2010-07-24 02:38:30 | SUCCESS
    r2939 | 2010-07-23 17:55:30 | SUCCESS
    r2928 | 2010-07-23 05:21:20 | SUCCESS
    r2924 | 2010-07-22 18:32:25 | SUCCESS

 r2945 remove some *IMPORTANT* macros from 
 /trunk/mingw-w64-headers/crt/float.h,
 e.g. FLT/DBL/LDBL_MANT_DIG, FLT_EVAL_METHOD, *ALL* decimal macros 
 (DEC32/64/128_*, ...)

 When I add FLT/DBL/LDBL_MANT_DIG and FLT_EVAL_METHOD back to 
 /trunk/mingw-w64-headers/crt/float.h,
 then the gcc cross build success again.

 So I recommend you apply the attached patch at least.

 btw, I know FLT_EVAL_METHOD added by C99, but libgfortran/m4/nearest.m4 use 
 it,
 is it mean we should use ISO C99 compiler to build gcc 4.5 or later, not 
 ISO C90 as
 http://gcc.gnu.org/install/prerequisites.html ?

 Regards,
 Dongsheng

 Hello Dongsheng,

 the recent change to float.h was necessary to support the new
 include_next patch of 4.6. So how are you exactly installing headers?
 As usual you should just see gcc's internal float.h for older gcc's
 then 4.6. So I am a bit puzzled. Are you removing gcc's float.h here?

 Regards,
 Kai


 Hi Kai,

 I use Debian 6.0 i686 with latest update, gcc 4.4.4 build a gcc 4.5 cross 
 compiler for windows,
 then use the cross compiler to build a native gcc 4.5 compiler for windows.


You cannot build 4.4/4.5 based compilers against the mingw-w64-headers
from the trunk unless you patch your gcc according to gcc PR/41943

 Without the patch, both i686-windows and x64-windows failed during build 
 native
 compiler.

 It's strange since I can build cross compiler, it maybe a gcc bug.

 The related packages is:
 gcc 4.5 branch, mingw64 trunk, binutils trunk, gmp 5.0 branch, mpfr 3.0 
 branch,
 mpc 0.8.2, ppl 0.10.2, cloog-ppl 0.15.9.

 Regards,
 Dongsheng


--
Ozkan

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share 
of $1 Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Kai Tietz break cross build gcc on r2945 due to delete FLT/DBL/LDBL_MANT_DIG macros

2010-07-28 Thread Kai Tietz
2010/7/28 Ozkan Sezer seze...@gmail.com:
 On Wed, Jul 28, 2010 at 10:54 AM, Dongsheng Song
 dongsheng.s...@gmail.com wrote:
 于 2010-7-28 15:43, Kai Tietz 写道:
 2010/7/28 Dongsheng Song dongsheng.s...@gmail.com:
 Hi Kai,

 When we cross build gcc 4.5 for windows, I found we can build windows gcc 
 binary one
 week ago, but now the build failed.

 After I do a binary search, I found the issue caused by r2945.

    r2950 | 2010-07-24 05:50:28 | FAILED
    r2945 | 2010-07-24 02:44:15 | FAILED
    r2944 | 2010-07-24 02:38:30 | SUCCESS
    r2939 | 2010-07-23 17:55:30 | SUCCESS
    r2928 | 2010-07-23 05:21:20 | SUCCESS
    r2924 | 2010-07-22 18:32:25 | SUCCESS

 r2945 remove some *IMPORTANT* macros from 
 /trunk/mingw-w64-headers/crt/float.h,
 e.g. FLT/DBL/LDBL_MANT_DIG, FLT_EVAL_METHOD, *ALL* decimal macros 
 (DEC32/64/128_*, ...)

 When I add FLT/DBL/LDBL_MANT_DIG and FLT_EVAL_METHOD back to 
 /trunk/mingw-w64-headers/crt/float.h,
 then the gcc cross build success again.

 So I recommend you apply the attached patch at least.

 btw, I know FLT_EVAL_METHOD added by C99, but libgfortran/m4/nearest.m4 
 use it,
 is it mean we should use ISO C99 compiler to build gcc 4.5 or later, not 
 ISO C90 as
 http://gcc.gnu.org/install/prerequisites.html ?

 Regards,
 Dongsheng

 Hello Dongsheng,

 the recent change to float.h was necessary to support the new
 include_next patch of 4.6. So how are you exactly installing headers?
 As usual you should just see gcc's internal float.h for older gcc's
 then 4.6. So I am a bit puzzled. Are you removing gcc's float.h here?

 Regards,
 Kai


 Hi Kai,

 I use Debian 6.0 i686 with latest update, gcc 4.4.4 build a gcc 4.5 cross 
 compiler for windows,
 then use the cross compiler to build a native gcc 4.5 compiler for windows.


 You cannot build 4.4/4.5 based compilers against the mingw-w64-headers
 from the trunk unless you patch your gcc according to gcc PR/41943

 Without the patch, both i686-windows and x64-windows failed during build 
 native
 compiler.

 It's strange since I can build cross compiler, it maybe a gcc bug.

 The related packages is:
 gcc 4.5 branch, mingw64 trunk, binutils trunk, gmp 5.0 branch, mpfr 3.0 
 branch,
 mpc 0.8.2, ppl 0.10.2, cloog-ppl 0.15.9.

 Regards,
 Dongsheng


 --
 Ozkan


The problematic thing here is, that for cross-compiler and native
different include dependencies are there. So it is absolutely
unpredicatable (for now), if toolchain's header are used in native (so
the float.h/stddef.h etc are seen first from system-headers), or if it
is by a cross-toolchain, which has in front the gcc-internal header
versions of those files.
All in all it is simply a mess.

Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| ()_() him gain world domination

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share 
of $1 Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Kai Tietz break cross build gcc on r2945 due to delete FLT/DBL/LDBL_MANT_DIG macros

2010-07-28 Thread Dongsheng Song
于 2010-7-28 16:02, Kai Tietz 写道:
 2010/7/28 Dongsheng Song dongsheng.s...@gmail.com:
 于 2010-7-28 15:43, Kai Tietz 写道:
 2010/7/28 Dongsheng Song dongsheng.s...@gmail.com:
 Hi Kai,

 When we cross build gcc 4.5 for windows, I found we can build windows gcc 
 binary one
 week ago, but now the build failed.

 After I do a binary search, I found the issue caused by r2945.

r2950 | 2010-07-24 05:50:28 | FAILED
r2945 | 2010-07-24 02:44:15 | FAILED
r2944 | 2010-07-24 02:38:30 | SUCCESS
r2939 | 2010-07-23 17:55:30 | SUCCESS
r2928 | 2010-07-23 05:21:20 | SUCCESS
r2924 | 2010-07-22 18:32:25 | SUCCESS

 r2945 remove some *IMPORTANT* macros from 
 /trunk/mingw-w64-headers/crt/float.h,
 e.g. FLT/DBL/LDBL_MANT_DIG, FLT_EVAL_METHOD, *ALL* decimal macros 
 (DEC32/64/128_*, ...)

 When I add FLT/DBL/LDBL_MANT_DIG and FLT_EVAL_METHOD back to 
 /trunk/mingw-w64-headers/crt/float.h,
 then the gcc cross build success again.

 So I recommend you apply the attached patch at least.

 btw, I know FLT_EVAL_METHOD added by C99, but libgfortran/m4/nearest.m4 
 use it,
 is it mean we should use ISO C99 compiler to build gcc 4.5 or later, not 
 ISO C90 as
 http://gcc.gnu.org/install/prerequisites.html ?

 Regards,
 Dongsheng

 Hello Dongsheng,

 the recent change to float.h was necessary to support the new
 include_next patch of 4.6. So how are you exactly installing headers?
 As usual you should just see gcc's internal float.h for older gcc's
 then 4.6. So I am a bit puzzled. Are you removing gcc's float.h here?

 Regards,
 Kai


 Hi Kai,

 I use Debian 6.0 i686 with latest update, gcc 4.4.4 build a gcc 4.5 cross 
 compiler for windows,
 then use the cross compiler to build a native gcc 4.5 compiler for windows.

 Without the patch, both i686-windows and x64-windows failed during build 
 native
 compiler.

 It's strange since I can build cross compiler, it maybe a gcc bug.

 The related packages is:
 gcc 4.5 branch, mingw64 trunk, binutils trunk, gmp 5.0 branch, mpfr 3.0 
 branch,
 mpc 0.8.2, ppl 0.10.2, cloog-ppl 0.15.9.

 Regards,
 Dongsheng


 
 Well, yes it is a gcc bug in respect to native/cross toolchains. I
 assume that your search path installs headers (and libraries) in
 standard_include for native. This cause that the system-headers get
 included before fixed-include and gcc-include.
 For this I can provide a patch. See revision 2986. But indeed this
 include-order of gcc is a conceptional flaw.
 
 Cheers,
 Kai
 

This build error fixed now, thank your excellent work !

Thank you very much !

But new error occurred when I use cross compiler to build native compiler:

...
i686-w64-mingw32-gcc  -O2 -pipe -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual 
-Wstrict-prototypes -Wmissing-prototypes
-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -Wold-style-definition -Wc++-compat
-DHAVE_CONFIG_H -s -o f951.exe \
fortran/arith.o fortran/array.o fortran/bbt.o fortran/check.o 
fortran/cpp.o fortran/data.o fortran/decl.o fortran/dump-parse-tree.o
fortran/error.o fortran/expr.o fortran/interface.o fortran/intrinsic.o 
fortran/io.o fortran/iresolve.o fortran/match.o fortran/matchexp.o
fortran/misc.o fortran/module.o fortran/openmp.o fortran/options.o 
fortran/parse.o fortran/primary.o fortran/resolve.o fortran/scanner.o
fortran/simplify.o fortran/st.o fortran/symbol.o fortran/target-memory.o  
fortran/convert.o fortran/dependency.o fortran/f95-lang.o
fortran/trans.o fortran/trans-array.o fortran/trans-common.o 
fortran/trans-const.o fortran/trans-decl.o fortran/trans-expr.o
fortran/trans-intrinsic.o fortran/trans-io.o fortran/trans-openmp.o 
fortran/trans-stmt.o fortran/trans-types.o main.o  libbackend.a
../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a   
../libiberty/libiberty.a ../libdecnumber/libdecnumber.a  attribs.o
-L/home/oracle/gcc-4.5-w32_i686-linux/lib -lcloog 
-L/home/oracle/gcc-4.5-w32_i686-linux/lib -lppl_c -lppl -lgmpxx 
-L/home/oracle/gcc-4.5-w32/lib
-L/home/oracle/gcc-4.5-w32/lib -L/home/oracle/gcc-4.5-w32/lib -lmpc -lmpfr 
-lgmp   -L../zlib -lz
/home/oracle/gcc-4.5-w32_i686-linux/lib/libppl_c.a(ppl_c_implementation_common.o):
 In function `__tcf_0':

...

/home/oracle/gcc-4.5-w32/lib/libgmpxx.a(isfuns.o):isfuns.cc:(.text+0x2be): 
undefined reference to `std::ios_base::Init::Init()'
collect2: ld returned 1 exit status
make[2]: *** [cc1plus-dummy.exe] Error 1
rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gcc.pod gfortran.pod
make[2]: Leaving directory `/home/oracle/tmp/gcc-4.5-w32-obj/gcc/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/home/oracle/tmp/gcc-4.5-w32-obj/gcc'
make: *** [all] Error 2

Then I run:

sed -i s/-lgmpxx/-lgmpxx -lstdc++/g ${NATIVE_OBJ_ROOT}/gcc/gcc/Makefile
make all

So I can build smoothly.

Is this a known bug ?

Regards,
Dongsheng



signature.asc
Description: OpenPGP digital signature
--
The Palm 

Re: [Mingw-w64-public] Kai Tietz break cross build gcc on r2945 due to delete FLT/DBL/LDBL_MANT_DIG macros

2010-07-28 Thread JonY
On 7/28/2010 20:32, Dongsheng Song wrote:
 于 2010-7-28 16:02, Kai Tietz 写道:
 2010/7/28 Dongsheng Songdongsheng.s...@gmail.com:
 于 2010-7-28 15:43, Kai Tietz 写道:
 2010/7/28 Dongsheng Songdongsheng.s...@gmail.com:
 Hi Kai,

 When we cross build gcc 4.5 for windows, I found we can build windows gcc 
 binary one
 week ago, but now the build failed.

 After I do a binary search, I found the issue caused by r2945.

 r2950 | 2010-07-24 05:50:28 | FAILED
 r2945 | 2010-07-24 02:44:15 | FAILED
 r2944 | 2010-07-24 02:38:30 | SUCCESS
 r2939 | 2010-07-23 17:55:30 | SUCCESS
 r2928 | 2010-07-23 05:21:20 | SUCCESS
 r2924 | 2010-07-22 18:32:25 | SUCCESS

 r2945 remove some *IMPORTANT* macros from 
 /trunk/mingw-w64-headers/crt/float.h,
 e.g. FLT/DBL/LDBL_MANT_DIG, FLT_EVAL_METHOD, *ALL* decimal macros 
 (DEC32/64/128_*, ...)

 When I add FLT/DBL/LDBL_MANT_DIG and FLT_EVAL_METHOD back to 
 /trunk/mingw-w64-headers/crt/float.h,
 then the gcc cross build success again.

 So I recommend you apply the attached patch at least.

 btw, I know FLT_EVAL_METHOD added by C99, but libgfortran/m4/nearest.m4 
 use it,
 is it mean we should use ISO C99 compiler to build gcc 4.5 or later, not 
 ISO C90 as
 http://gcc.gnu.org/install/prerequisites.html ?

 Regards,
 Dongsheng

 Hello Dongsheng,

 the recent change to float.h was necessary to support the new
 include_next patch of 4.6. So how are you exactly installing headers?
 As usual you should just see gcc's internal float.h for older gcc's
 then 4.6. So I am a bit puzzled. Are you removing gcc's float.h here?

 Regards,
 Kai


 Hi Kai,

 I use Debian 6.0 i686 with latest update, gcc 4.4.4 build a gcc 4.5 cross 
 compiler for windows,
 then use the cross compiler to build a native gcc 4.5 compiler for windows.

 Without the patch, both i686-windows and x64-windows failed during build 
 native
 compiler.

 It's strange since I can build cross compiler, it maybe a gcc bug.

 The related packages is:
 gcc 4.5 branch, mingw64 trunk, binutils trunk, gmp 5.0 branch, mpfr 3.0 
 branch,
 mpc 0.8.2, ppl 0.10.2, cloog-ppl 0.15.9.

 Regards,
 Dongsheng



 Well, yes it is a gcc bug in respect to native/cross toolchains. I
 assume that your search path installs headers (and libraries) in
 standard_include for native. This cause that the system-headers get
 included before fixed-include and gcc-include.
 For this I can provide a patch. See revision 2986. But indeed this
 include-order of gcc is a conceptional flaw.

 Cheers,
 Kai


 This build error fixed now, thank your excellent work !

 Thank you very much !

 But new error occurred when I use cross compiler to build native compiler:

 ...
 i686-w64-mingw32-gcc  -O2 -pipe -DIN_GCC   -W -Wall -Wwrite-strings 
 -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
 -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros 
 -Wno-overlength-strings -Wold-style-definition -Wc++-compat
 -DHAVE_CONFIG_H -s -o f951.exe \
   fortran/arith.o fortran/array.o fortran/bbt.o fortran/check.o 
 fortran/cpp.o fortran/data.o fortran/decl.o fortran/dump-parse-tree.o
 fortran/error.o fortran/expr.o fortran/interface.o fortran/intrinsic.o 
 fortran/io.o fortran/iresolve.o fortran/match.o fortran/matchexp.o
 fortran/misc.o fortran/module.o fortran/openmp.o fortran/options.o 
 fortran/parse.o fortran/primary.o fortran/resolve.o fortran/scanner.o
 fortran/simplify.o fortran/st.o fortran/symbol.o fortran/target-memory.o  
 fortran/convert.o fortran/dependency.o fortran/f95-lang.o
 fortran/trans.o fortran/trans-array.o fortran/trans-common.o 
 fortran/trans-const.o fortran/trans-decl.o fortran/trans-expr.o
 fortran/trans-intrinsic.o fortran/trans-io.o fortran/trans-openmp.o 
 fortran/trans-stmt.o fortran/trans-types.o main.o  libbackend.a
 ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a   
 ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a  attribs.o
 -L/home/oracle/gcc-4.5-w32_i686-linux/lib -lcloog 
 -L/home/oracle/gcc-4.5-w32_i686-linux/lib -lppl_c -lppl -lgmpxx 
 -L/home/oracle/gcc-4.5-w32/lib
 -L/home/oracle/gcc-4.5-w32/lib -L/home/oracle/gcc-4.5-w32/lib -lmpc -lmpfr 
 -lgmp   -L../zlib -lz
 /home/oracle/gcc-4.5-w32_i686-linux/lib/libppl_c.a(ppl_c_implementation_common.o):
  In function `__tcf_0':

 ...

 /home/oracle/gcc-4.5-w32/lib/libgmpxx.a(isfuns.o):isfuns.cc:(.text+0x2be): 
 undefined reference to `std::ios_base::Init::Init()'
 collect2: ld returned 1 exit status
 make[2]: *** [cc1plus-dummy.exe] Error 1
 rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gcc.pod gfortran.pod
 make[2]: Leaving directory `/home/oracle/tmp/gcc-4.5-w32-obj/gcc/gcc'
 make[1]: *** [all-gcc] Error 2
 make[1]: Leaving directory `/home/oracle/tmp/gcc-4.5-w32-obj/gcc'
 make: *** [all] Error 2

 Then I run:

 sed -i s/-lgmpxx/-lgmpxx -lstdc++/g ${NATIVE_OBJ_ROOT}/gcc/gcc/Makefile
 make all

 So I can build smoothly.

 Is this a known bug ?

 Regards,
 Dongsheng


Use g++ to link? g++ auto adds those libraries to the 

Re: [Mingw-w64-public] Making config.guess detect mingw64 platform?

2010-07-28 Thread Luis Lavena
On Wed, Jul 28, 2010 at 9:44 AM, Earnie ear...@users.sourceforge.net wrote:
 JonY wrote:


  MSYS has been strongly associated with mingw.org for a very long
  time, hence to autotools, MSYS uname string can be assumed to be
  i686-pc-mingw32.



Hello JonY and Ernie,

Thank you both for your responses.

 Let me state that the string from the MSYS uname is controlled by an
 environment variable MSYSTEM.  So if MSYSTEM is changed to say mingw64
 then the config.guess and config.sub scripts could be changed to
 recognize the uname string to produce i686-pc-mingw64, x86_64-mingw64 or
 even x86_64-w64-mingw32 which ever is preferred.  The uname string from
 MSYS would read MINGW64_NT-5.1 if MSYSTEM=mingw64.


I believe MSYSTEM should be set uppercase, as setting mingw32
lowercase do not identify properly.

This change should be send upstream?

 My personal preference for a config.guess return string would be
 x86_64-w64-mingw.


I believe this was already established as x86_64-w64-mingw32 ?

http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS


-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Making config.guess detect mingw64 platform?

2010-07-28 Thread Ruben Van Boxem

  environment variable MSYSTEM.  So if MSYSTEM is changed to say mingw64
  then the config.guess and config.sub scripts could be changed to
  recognize the uname string to produce i686-pc-mingw64, x86_64-mingw64 or
  even x86_64-w64-mingw32 which ever is preferred.  The uname string from
  MSYS would read MINGW64_NT-5.1 if MSYSTEM=mingw64.
 

 I believe MSYSTEM should be set uppercase, as setting mingw32
 lowercase do not identify properly.

 This change should be send upstream?

  My personal preference for a config.guess return string would be
  x86_64-w64-mingw.
 

 I believe this was already established as x86_64-w64-mingw32 ?

 http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS


Great, someone actually found the wiki!

MSYS itself is 32-bit, so having uname return something else is not quite
correct. There are other things bad about this suggestion:
1. What if you have installed x86_64-w64-mingw32-gcc, i686-w64-mingw32-gcc,
and i686-pc-mingw32-gcc, and added all three paths to MSYS's path? uname
isn't at all a correct way to determine the compiler's target, especially
when you think about cross-compilation, and (future/current) multilib.
2. The wiki states the workaround/The Right Way to use mingw-w64 under
MSYS.

I believe passing -host=... to configure is a small price to pay (if any)
for the functionality you get from using MSYS+mingw-w64. The MSYS package
provided by mingw-w64 (aka me in this context) is only the complete binary
set of packages conveniently packed into one. I don't feel I have the
right/will to change internal settings (of which I do not know how far these
reach) or to keep any changes up to date.

I hope you can understand my reasoning, and I'll be happy to read any
arguments against what I stated above and consider revising my opinion, but
MSYS works fine as is.

Ruben
--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Making config.guess detect mingw64 platform?

2010-07-28 Thread Earnie
Ruben Van Boxem wrote:

  http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS


  Great, someone actually found the wiki!

  MSYS itself is 32-bit, so having uname return something else is not
  quite correct. There are other things bad about this suggestion: 1.
  What if you have installed x86_64-w64-mingw32-gcc,
  i686-w64-mingw32-gcc, and i686-pc-mingw32-gcc, and added all three
  paths to MSYS's path? uname isn't at all a correct way to determine
  the compiler's target, especially when you think about
  cross-compilation, and (future/current) multilib. 2. The wiki states
  the workaround/The Right Way to use mingw-w64 under MSYS.


While MSYS is currently only offered as a 32bit application, you are 
using it in a 64bit system to do 64bit work.  So you want your build 
environment to reflect natively that you are in a 64bit system.  The 
resolution to what if I have this GCC build and that GCC build is no 
different than what you need to do now for multiple versions of the 
product.  You just create a script to modify the PATH to point to the 
correct GCC build.

  I believe passing -host=... to configure is a small price to pay (if
  any) for the functionality you get from using MSYS+mingw-w64. The
  MSYS package provided by mingw-w64 (aka me in this context) is only
  the complete binary set of packages conveniently packed into one.

Not really a big thing, just comfortableness of the end user.

  I don't feel I have the right/will to change internal settings (of
  which I do not know how far these reach) or to keep any changes up to
  date.


I can create a patch to the msys.bat file that would allow the MSYSTEM 
to be set to MINGW64 just by passing in a parameter of MINGW64.  
Currently though if the environment variable is set before starting MSYS 
it will use that value.  So if you start your MSYS with MSYSTEM=MINGW32 
and then do ``MSYSTEM=MINGW64 start /msys.bat'' it will open a new 
window with a build environment for MINGW64.

  I hope you can understand my reasoning, and I'll be happy to read any
  arguments against what I stated above and consider revising my
  opinion, but MSYS works fine as is.

I understand your reasoning do you understand mine?  My reasoning is 
toward the comfortableness of the noob who just wants to build 64bit 
native binaries with the least amount of typing.  I am sure that MSYS 
works fine as you have documented it.  But I did create the beast and 
MSYSTEM was meant to be used to control the build environment so that 
config.guess could guess correctly.  I just didn't get around to 
documenting it formally.

Earnie

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Making config.guess detect mingw64 platform?

2010-07-28 Thread Luis Lavena
On Wed, Jul 28, 2010 at 1:39 PM, Ruben Van Boxem
vanboxem.ru...@gmail.com wrote:

 MSYS itself is 32-bit, so having uname return something else is not quite
 correct. There are other things bad about this suggestion:

 1. What if you have installed x86_64-w64-mingw32-gcc, i686-w64-mingw32-gcc,
 and i686-pc-mingw32-gcc, and added all three paths to MSYS's path? uname
 isn't at all a correct way to determine the compiler's target, especially
 when you think about cross-compilation, and (future/current) multilib.

 2. The wiki states the workaround/The Right Way to use mingw-w64 under
 MSYS.

 I believe passing -host=... to configure is a small price to pay (if any)
 for the functionality you get from using MSYS+mingw-w64. The MSYS package
 provided by mingw-w64 (aka me in this context) is only the complete binary
 set of packages conveniently packed into one. I don't feel I have the
 right/will to change internal settings (of which I do not know how far these
 reach) or to keep any changes up to date.


While I understand the small price to pay, I'm working on a tool that
build recipes for the different compilers, and uses sh -c
./config.guess to determine the platform for it's own use.

It allow the user to use a configuration setting to override it, but
ideally the compilers should be transparent to the tool.

If this can't be worked out, we will need to fall back to lookup for
*gcc* in the path and extrapolate the platform from it or the
compilation of a simple .C file

Thank you guys for your answers.
-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public