<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#993399">
Duke Hound wrote:
<blockquote cite="mid:485D52F2.6030302@gmail.com" type="cite">
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
Sisyphus wrote:
  <blockquote cite="mid:9C9B1D1504D94288AF5F16078602ECD2@desktop2"
 type="cite"><br>
----- Original Message ----- From: "Duke Hound"
    <a moz-do-not-send="true" class="moz-txt-link-rfc2396E"
 href="mailto:dukethek9@gmail.com">&lt;dukethek9@gmail.com&gt;</a> <br>
To: <a moz-do-not-send="true" class="moz-txt-link-rfc2396E"
 href="mailto:gmp-discuss@swox.com">&lt;gmp-discuss@swox.com&gt;</a> <br>
Sent: Saturday, June 21, 2008 11:32 AM <br>
Subject: GMP build issues <br>
    <br>
    <br>
    <blockquote type="cite">[Sorry if this is the second time this
message got sent to the group (i <br>
sent the first one before subscribing - doh!)] <br>
      <br>
Hello, <br>
      <br>
I am trying to build the gmp-4.2.2 library; however, I am receiving <br>
errors during the 'make check' step.&nbsp; I am using a windows XP SP2 <br>
machine with MinGW (gcc version 3.4.5 (mingw-vista special)) that came <br>
as part of the IDE CodeBlocks. <br>
      <br>
    </blockquote>
    <br>
It might simply be that you need to run 'make' before running 'make
check'. <br>
    <br>
On Windows, if I run 'make check' straight after configure (without
first running 'make') I, too, get an error - though in my case the
error I'm getting is that libgmp.la cannot be found. (This error is to
be expected since libgmp.la, which gets built during the 'make' step,
has not yet been created.) <br>
    <br>
By running './configure' (without any additional arguments), you'll be
building a dynamic (dll) gmp library and, for me, 'make check' is
failing all tests with such builds. I don't know why that happens.
Afaict, there's nothing wrong with the dll that gets built - the apps
that I build using that dll always work as they should. <br>
    <br>
I'd be interested to know if 'make check' succeeds for you (after
you've run 'make'). <br>
    <br>
The problem applies only to dynamic builds. If I build a static gmp
library (by starting with './configure --disable-shared
--enable-static') there's no problem with 'make check'. <br>
    <br>
Cheers, <br>
Rob <br>
  </blockquote>
  <br>
Hello,<br>
I decided to reinstall msys and start again.<br>
Details: <br>
-Windows XP SP2<br>
-I have MinGW (gcc version 3.4.5 (mingw-vista special)) at <br>
C:\Program Files\CodeBlocks\MinGW\<br>
-I have MSYS 1.0.10 at<br>
C:\msys\1.0\<br>
-In C:\msys\1.0\etc\fstab i have the following mount setting:<br>
"c:/progra~1/codeblocks/mingw /mingw"<br>
-I have unzipped GMP 4.2.2 to<br>
C:\msys\1.0\home\dan\gmp-4.2.2<br>
  <br>
======PART 1 BUILD ===========<br>
[note: the msys make is 3.79.1 built for i686-pc-msys , whereas the
mingw32-make is GNU Make 3.81 built for i386-pc-mingw32]<br>
  <br>
my commands (with the new setup as described above) (output of these
commands are attached in the .zip)<br>
./configure --enable-cxx<br>
make<br>
make check<br>
  <br>
When I build this I do not get any DLL files, even though I do not
provide the '--disable-shared --enable-static' switches.&nbsp; Please
explain?<br>
During the make I receive the following warnings which i think are
related to PART 2 of this email.<br>
  <br>
libtool: link: warning: undefined symbols not allowed in
athlon-pc-mingw32 shared libraries<br>
libtool: link: warning: undefined symbols not allowed in
athlon-pc-mingw32 shared libraries<br>
  <br>
make check seemed to pass.<br>
  <br>
======PART 2 Linking Libary Issues===========<br>
  <br>
Now, I am trying to use the library that i just built.<br>
  <br>
Here is the simple code<br>
#include &lt;gmpxx.h&gt;<br>
using namespace std;<br>
int main() {<br>
mpz_class a;<br>
a = 1234;<br>
cout &lt;&lt; a &lt;&lt; endl;<br>
return 0;<br>
}<br>
  <br>
Here is the output from the build log<br>
-------------- Build: Debug in stringmath ---------------<br>
  <br>
mingw32-g++.exe&nbsp; -o bin\Debug\stringmath.exe obj\Debug\main.o
obj\Debug\files\sint.o&nbsp;&nbsp;&nbsp;
E:\mysql++-3.0.3\include_lib_a_def\libmysqlclient.a
E:\mysql++-3.0.3\include_lib_a_def\libmysqlpp.a
E:\C++\codeblocks\libraries\libmapm.a
E:\C++\codeblocks\libraries\gmp\msys\libgmp.a
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a
E:\C++\codeblocks\libraries\gmp\msys\libcxx.a <br>
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osmpz.o):osmpz.cc:(.text+0x39):
undefined reference to `___gmpz_get_str'<br>
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osdoprnti.o):osdoprnti.cc:(.text+0x9d):
undefined reference to `___gmp_doprnt_integer'<br>
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osdoprnti.o):osdoprnti.cc:(.text+0xa9):
undefined reference to `___gmp_asprintf_final'<br>
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osfuns.o):osfuns.cc:(.rdata+0x4):
undefined reference to `___gmp_asprintf_memory'<br>
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osfuns.o):osfuns.cc:(.rdata+0x8):
undefined reference to `___gmp_asprintf_reps'<br>
  <br>
I do not receive the undefined reference errors when I comment out the
cout line.<br>
  <br>
After doing some reading online, I think (I could be absolutely off the
mark though) these link errors have to do with the make procedure using
the cygwin c++ runtime libraries instead of mingw32 c++ runtime
libraries.&nbsp; (I do not have cygwin installed, just the msys).&nbsp; I think
this has to do with the -mno-cygwin switch during the make process
above.<br>
  <br>
The output from the configure/make/make check commands are attached.<br>
  <br>
How do I resolve these undefined reference errors.&nbsp; Thanks.<br>
  <br>
Thanks for walking/talking through this with me.<br>
  <br>
</blockquote>
<font face="Palatino Linotype">Hello,<br>
-I think the dll was not created becase the libtool had undefined
symbols, so it just made the static lib.<br>
-I saw the following from the GMP documentation<br>
"</font>MINGW uses the C runtime library `<samp><span class="samp">msvcrt.dll</span></samp>'
for I/O, so applications
wanting to use the GMP I/O routines must be compiled with `<samp><span
 class="samp">cl /MD</span></samp>' to do
the same. If one of the other C runtime library choices provided by MS
C is
desired then the suggestion is to use the GMP string functions and
confine I/O
to the application. "<br>
Could this be the reason for the undefined references?&nbsp; If so how do I
"complie with the `cl /MD`"?&nbsp; Do I have to use ./configure CFLAGS=cl
/MD?<br>
<br>
Attempts:<br>
$ ./configure --disable-shared --enable-static --enable-cxx &gt;
/home/dan/config.log<br>
$ make &gt; /home/dan/make.log<br>
libtool: link: warning: undefined symbols not allowed in
athlon-pc-mingw32 shared libraries<br>
libtool: link: warning: undefined symbols not allowed in
athlon-pc-mingw32 shared libraries<br>
<br>
$ ./configure CFLAGS="cl /MD" --disable-shared --enable-static
--enable-cxx &gt; /<br>
home/dan/config_flags.log<br>
configure: error: could not find a working compiler, see config.log for
details<br>
<br>
$ ./configure CFLAGS=cl/MD --disable-shared --enable-static
--enable-cxx &gt; /hom<br>
e/dan/config_flags.log<br>
configure: error: could not find a working compiler, see config.log for
details<br>
<br>
$ ./configure CFLAGS='cl /MD' --disable-shared --enable-static
--enable-cxx &gt; /<br>
home/dan/config_flags.log<br>
configure: error: could not find a working compiler, see config.log for
details<br>
<br>
$ ./configure CFLAGS=cl /MD --disable-shared --enable-static
--enable-cxx &gt; /ho<br>
me/dan/config_flags.log<br>
configure: WARNING: you should use --build, --host, --target<br>
configure: WARNING: invalid host type: /MD<br>
Invalid configuration `/MD': machine `/MD' not recognized<br>
configure: error: /bin/sh ./config.sub /MD failed<br>
<br>
Thanks,<br>
<font face="Palatino Linotype"><br>
</font>
</body>
</html>