Hi,
I've tried to upgrade from lsh 1.5.2 to 1.5.3, but I can't compile the new version. 1.5.2 compiles fine.
Here's the output from make (after a plain ./configure):
gcc -O2 -march=i386 -mcpu=i686 -fPIC -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -L.. -o rsa-test rsa-test.o testutils.o -lnettle ../libnettle.a -lgmp if gcc -DHAVE_CONFIG_H -I. -I/usr/local/src/lsh-1.5.3/src/nettle/testsuite -I.. -I/usr/local/src/lsh-1.5.3/src/nettle -O2 -march=i386 -mcpu=i686 -fPIC -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -MT rsa-encrypt-test.o -MD -MP -MF ".deps/rsa-encrypt-test.Tpo" \ -c -o rsa-encrypt-test.o `test -f 'rsa-encrypt-test.c' || echo '/usr/local/src/lsh-1.5.3/src/nettle/testsuite/'`rsa-encrypt-test.c; \ then mv ".deps/rsa-encrypt-test.Tpo" ".deps/rsa-encrypt-test.Po"; \ else rm -f ".deps/rsa-encrypt-test.Tpo"; exit 1; \ fi rsa-encrypt-test.c: In function `test_main': rsa-encrypt-test.c:41: warning: implicit declaration of function `gmp_fprintf' gcc -O2 -march=i386 -mcpu=i686 -fPIC -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -L.. -o rsa-encrypt-test rsa-encrypt-test.o testutils.o -lnettle ../libnettle.a -lgmp rsa-encrypt-test.o: In function `test_main': rsa-encrypt-test.o(.text+0x121): undefined reference to `gmp_fprintf' collect2: ld returned 1 exit status make[6]: *** [rsa-encrypt-test] Error 1 make[6]: Leaving directory `/usr/local/src/lsh-1.5.3/src/nettle/testsuite' make[5]: *** [all-recursive] Error 1 make[5]: Leaving directory `/usr/local/src/lsh-1.5.3/src/nettle' make[4]: *** [all] Error 2 make[4]: Leaving directory `/usr/local/src/lsh-1.5.3/src/nettle' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/usr/local/src/lsh-1.5.3/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/local/src/lsh-1.5.3/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/lsh-1.5.3' make: *** [all] Error 2
Tried 1.4.3, too - doesn't work either:
if gcc -DHAVE_CONFIG_H -I. -I/usr/local/src/lsh-1.4.3/src/argp -I. -D_GNU_SOURCE -I/usr/local/src/lsh-1.4.3/src/argp -O2 -march=i386 -mcpu=i686 -fPIC -ggdb3 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Waggregate-return -Wpointer-arith -Wbad-function-cast -Wnested-externs -MT argp-fmtstream.o -MD -MP -MF ".deps/argp-fmtstream.Tpo" \ -c -o argp-fmtstream.o `test -f 'argp-fmtstream.c' || echo '/usr/local/src/lsh-1.4.3/src/argp/'`argp-fmtstream.c; \ then mv ".deps/argp-fmtstream.Tpo" ".deps/argp-fmtstream.Po"; \ else rm -f ".deps/argp-fmtstream.Tpo"; exit 1; \ fi argp-fmtstream.c: In function `argp_fmtstream_free': argp-fmtstream.c:97: warning: signed and unsigned type in conditional expression argp-fmtstream.c: In function `_argp_fmtstream_update': argp-fmtstream.c:271: warning: signed and unsigned type in conditional expression argp-fmtstream.c: In function `_argp_fmtstream_ensure': argp-fmtstream.c:326: warning: signed and unsigned type in conditional expression if gcc -DHAVE_CONFIG_H -I. -I/usr/local/src/lsh-1.4.3/src/argp -I. -D_GNU_SOURCE -I/usr/local/src/lsh-1.4.3/src/argp -O2 -march=i386 -mcpu=i686 -fPIC -ggdb3 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Waggregate-return -Wpointer-arith -Wbad-function-cast -Wnested-externs -MT argp-help.o -MD -MP -MF ".deps/argp-help.Tpo" \ -c -o argp-help.o `test -f 'argp-help.c' || echo '/usr/local/src/lsh-1.4.3/src/argp/'`argp-help.c; \ then mv ".deps/argp-help.Tpo" ".deps/argp-help.Po"; \ else rm -f ".deps/argp-help.Tpo"; exit 1; \ fi argp-help.c:199: warning: missing initializer argp-help.c:199: warning: (near initialization for `uparam_names[9].is_bool') if gcc -DHAVE_CONFIG_H -I. -I/usr/local/src/lsh-1.4.3/src/argp -I. -D_GNU_SOURCE -I/usr/local/src/lsh-1.4.3/src/argp -O2 -march=i386 -mcpu=i686 -fPIC -ggdb3 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Waggregate-return -Wpointer-arith -Wbad-function-cast -Wnested-externs -MT argp-parse.o -MD -MP -MF ".deps/argp-parse.Tpo" \ -c -o argp-parse.o `test -f 'argp-parse.c' || echo '/usr/local/src/lsh-1.4.3/src/argp/'`argp-parse.c; \ then mv ".deps/argp-parse.Tpo" ".deps/argp-parse.Po"; \ else rm -f ".deps/argp-parse.Tpo"; exit 1; \ fi argp-parse.c:96: warning: missing initializer argp-parse.c:96: warning: (near initialization for `argp_default_options[1].group') argp-parse.c:97: warning: missing initializer argp-parse.c:97: warning: (near initialization for `argp_default_options[2].group') argp-parse.c:99: warning: missing initializer argp-parse.c:99: warning: (near initialization for `argp_default_options[3].group') argp-parse.c:100: warning: missing initializer argp-parse.c:100: warning: (near initialization for `argp_default_options[4].arg') argp-parse.c:160: warning: missing initializer argp-parse.c:160: warning: (near initialization for `argp_version_options[1].arg') argp-parse.c: In function `_option_is_short': argp-parse.c:1294: Internal compiler error in add_abstract_origin_attribute, at dwarf2out.c:7985 Please submit a full bug report. See URL:http://bugzilla.redhat.com/bugzilla/ for instructions. make[3]: *** [argp-parse.o] Error 1 make[3]: Leaving directory `/usr/local/src/lsh-1.4.3/src/argp' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/local/src/lsh-1.4.3/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/lsh-1.4.3' make: *** [all] Error 2
Any ideas what's going wrong here?
Thanks Jochen
2003-09-21T07:10:29 lsh-list@brennmeister.com:
I've tried to upgrade from lsh 1.5.2 to 1.5.3, but I can't compile the new version. 1.5.2 compiles fine. rsa-encrypt-test.o(.text+0x121): undefined reference to `gmp_fprintf'
Is your gpm-devel package installed? Is it the same version that worked with 1.5.2?
Tried 1.4.3, too - doesn't work either: argp-parse.c:1294: Internal compiler error in add_abstract_origin_attribute, at dwarf2out.c:7985 Please submit a full bug report.
Yuckity yuck. Now I'd begin wondering if you've got an incipient hardware problem. Unless you've upgraded your dev environment a bit too far recently.
The bpm[1] spec file I attach builds lsh-1.4.3 just fine on Red Hat 8, and with s/1.4.3/1.5.3/g it does lsh 1.5.3 fine as well. BTW, the resulting 1.5.3 doesn't croack on getting banged by dev/urandom.
-Bennett
[1] bpm is the package manager for a new Linux distro I'm working on, loosely inspired by rpm, but without the decade worth of accumulated cruft. The spec file is URL:http://www.lua.org/ source defining a few public variables that bpm knows about: the pkg name, the source(s) where the input files come from, and the shell fragment to build the package. Still under development, but I think it makes simple human-readable documentation for how I'm building my software.
Bennett Todd wrote:
2003-09-21T07:10:29 lsh-list@brennmeister.com:
I've tried to upgrade from lsh 1.5.2 to 1.5.3, but I can't compile the new version. 1.5.2 compiles fine. rsa-encrypt-test.o(.text+0x121): undefined reference to `gmp_fprintf'
Is your gpm-devel package installed? Is it the same version that worked with 1.5.2?
Yes, didn't change anything. I can still compile 1.5.2 (and have done so after manually patching the security problem released recently) fine, 1.5.3, 1.4.3 and also 1.4.2 don't work. gpm and gpm-devel are installed, both version 1.19.3-16.
Tried 1.4.3, too - doesn't work either: argp-parse.c:1294: Internal compiler error in add_abstract_origin_attribute, at dwarf2out.c:7985 Please submit a full bug report.
Yuckity yuck. Now I'd begin wondering if you've got an incipient hardware problem. Unless you've upgraded your dev environment a bit too far recently.
Well, it's basically a stock RedHat 7.1, only the standard RPMs (and maybe errata from RedHat) installed (ok, there's some software from DJB on the box as well, but this should not interfere with the build process of lsh).
The bpm[1] spec file I attach builds lsh-1.4.3 just fine on Red Hat 8, and with s/1.4.3/1.5.3/g it does lsh 1.5.3 fine as well. BTW, the resulting 1.5.3 doesn't croack on getting banged by dev/urandom.
I tried to build lsh-1.4.3 with the configure flags from your bpm spec file, but that didn't work out, either :( Same error as before.
Anyway, the patch from Niels apparently solved my initial problem with lsh-1.5.3, it compiles fine now :)
Best regards Jochen
lsh-list@brennmeister.com writes:
rsa-encrypt-test.o testutils.o -lnettle ../libnettle.a -lgmp rsa-encrypt-test.o: In function `test_main': rsa-encrypt-test.o(.text+0x121): undefined reference to `gmp_fprintf' collect2: ld returned 1 exit status
Oh, I'm not sure in which version of GMP the function gmp_printf was introduced. It's included in 4.1.2 which is what I'm running at the moment.
I've checked in a patch to use the older mpz_out_str function instead, see below.
argp-parse.c:1294: Internal compiler error in add_abstract_origin_attribute, at dwarf2out.c:7985 Please submit a full bug report. See URL:http://bugzilla.redhat.com/bugzilla/ for instructions.
Any ideas what's going wrong here?
As the message says, you have found a gcc bug. Please follow the bug-reporting instructions in the gcc manual or at the mentioned URL.
You don't say which versions of gcc you are using, perhaps upgrading solves this problem.
Regards, /Niels
diff -u -a -r1.1 rsa-encrypt-test.c --- src/nettle/testsuite/rsa-encrypt-test.c26 Aug 2003 06:44:51 -00001.1 +++ src/nettle/testsuite/rsa-encrypt-test.c21 Sep 2003 18:14:20 -0000 @@ -38,7 +38,11 @@ gibberish));
if (verbose) - gmp_fprintf(stderr, "encrypted: %Zd\n", gibberish); + { + /* In which GMP version was gmp_fprintf introduced? */ + fprintf(stderr, "encrypted: "); + mpz_out_str(stderr, 10, gibberish); + }
decrypted = alloca(msg_length + 1);
Niels Möller wrote:
lsh-list@brennmeister.com writes:
rsa-encrypt-test.o testutils.o -lnettle ../libnettle.a -lgmp rsa-encrypt-test.o: In function `test_main': rsa-encrypt-test.o(.text+0x121): undefined reference to `gmp_fprintf' collect2: ld returned 1 exit status
Oh, I'm not sure in which version of GMP the function gmp_printf was introduced. It's included in 4.1.2 which is what I'm running at the moment.
My RedHat 7.1 has gmp-3.1.1-3 installed, seems it's not included in this version.
I've checked in a patch to use the older mpz_out_str function instead, see below.
Thanks, that solved the compile error of lsh-1.5.3 :)
argp-parse.c:1294: Internal compiler error in add_abstract_origin_attribute, at dwarf2out.c:7985 Please submit a full bug report. See URL:http://bugzilla.redhat.com/bugzilla/ for instructions.
Any ideas what's going wrong here?
As the message says, you have found a gcc bug. Please follow the bug-reporting instructions in the gcc manual or at the mentioned URL.
Ok, will do so. Just for the records, lsh-1.4.2 doesn't build either. Same error occurs.
You don't say which versions of gcc you are using, perhaps upgrading solves this problem.
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.2 2.96-112.7.1)
I'm not too happy with the idea of upgrading gcc (I don't have physical access to the box, so I'm a bit cautious here). This is the latest version that's available from RedHat for this (pretty old) distribution.
Thanks Jochen
lsh-list@brennmeister.com wrote:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.2 2.96-112.7.1)
I'm not too happy with the idea of upgrading gcc (I don't have physical access to the box, so I'm a bit cautious here). This is the latest version that's available from RedHat for this (pretty old) distribution.
Actually, it seems to help if I change my CFLAGS... I used to have '-O2 -march=i386 -mcpu=i686 -fPIC', when I remove the -O2, lsh-1.4.3 compiles fine.
Best regards Jochen