GMP build issues

Duke Hound dukethek9 at gmail.com
Sat Jun 21 21:13:54 CEST 2008


Sisyphus wrote:
>
> ----- Original Message ----- From: "Duke Hound" <dukethek9 at gmail.com>
> To: <gmp-discuss at swox.com>
> Sent: Saturday, June 21, 2008 11:32 AM
> Subject: GMP build issues
>
>
>> [Sorry if this is the second time this message got sent to the group (i
>> sent the first one before subscribing - doh!)]
>>
>> Hello,
>>
>> I am trying to build the gmp-4.2.2 library; however, I am receiving
>> errors during the 'make check' step.  I am using a windows XP SP2
>> machine with MinGW (gcc version 3.4.5 (mingw-vista special)) that came
>> as part of the IDE CodeBlocks.
>>
>
> It might simply be that you need to run 'make' before running 'make 
> check'.
>
> 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.)
>
> 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.
>
> I'd be interested to know if 'make check' succeeds for you (after 
> you've run 'make').
>
> 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'.
>
> Cheers,
> Rob

Hello,
I decided to reinstall msys and start again.
Details:
-Windows XP SP2
-I have MinGW (gcc version 3.4.5 (mingw-vista special)) at
C:\Program Files\CodeBlocks\MinGW\
-I have MSYS 1.0.10 at
C:\msys\1.0\
-In C:\msys\1.0\etc\fstab i have the following mount setting:
"c:/progra~1/codeblocks/mingw /mingw"
-I have unzipped GMP 4.2.2 to
C:\msys\1.0\home\dan\gmp-4.2.2

======PART 1 BUILD ===========
[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]

my commands (with the new setup as described above) (output of these 
commands are attached in the .zip)
./configure --enable-cxx
make
make check

When I build this I do not get any DLL files, even though I do not 
provide the '--disable-shared --enable-static' switches.  Please explain?
During the make I receive the following warnings which i think are 
related to PART 2 of this email.

libtool: link: warning: undefined symbols not allowed in 
athlon-pc-mingw32 shared libraries
libtool: link: warning: undefined symbols not allowed in 
athlon-pc-mingw32 shared libraries

make check seemed to pass.

======PART 2 Linking Libary Issues===========

Now, I am trying to use the library that i just built.

Here is the simple code
#include <gmpxx.h>
using namespace std;
int main() {
mpz_class a;
a = 1234;
cout << a << endl;
return 0;
}

Here is the output from the build log
-------------- Build: Debug in stringmath ---------------

mingw32-g++.exe  -o bin\Debug\stringmath.exe obj\Debug\main.o 
obj\Debug\files\sint.o    
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
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osmpz.o):osmpz.cc:(.text+0x39): 
undefined reference to `___gmpz_get_str'
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osdoprnti.o):osdoprnti.cc:(.text+0x9d): 
undefined reference to `___gmp_doprnt_integer'
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osdoprnti.o):osdoprnti.cc:(.text+0xa9): 
undefined reference to `___gmp_asprintf_final'
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osfuns.o):osfuns.cc:(.rdata+0x4): 
undefined reference to `___gmp_asprintf_memory'
E:\C++\codeblocks\libraries\gmp\msys\libgmpxx.a(osfuns.o):osfuns.cc:(.rdata+0x8): 
undefined reference to `___gmp_asprintf_reps'

I do not receive the undefined reference errors when I comment out the 
cout line.

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.  (I do not have cygwin installed, just the msys).  I think 
this has to do with the -mno-cygwin switch during the make process above.

The output from the configure/make/make check commands are attached.

How do I resolve these undefined reference errors.  Thanks.

Thanks for walking/talking through this with me.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gmplib.org/list-archives/gmp-discuss/attachments/20080621/8ca53d4a/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: shell_output.zip
Type: application/zip
Size: 41941 bytes
Desc: not available
Url : http://gmplib.org/list-archives/gmp-discuss/attachments/20080621/8ca53d4a/attachment-0001.zip 


More information about the gmp-discuss mailing list