Hi,
I've prepared a "release candidate" tarball, https://www.lysator.liu.se/~nisse/archive/nettle-3.4rc2.tar.gz
All testing appreciated, in particular on non-x86 or non-gnu/linux platforms. If all goes well, I might make the release next weekend.
Regards, /Niels
From: nisse@lysator.liu.se (Niels Möller) Date: Sun, 12 Nov 2017 19:36:18 +0100
I've prepared a "release candidate" tarball, https://www.lysator.liu.se/~nisse/archive/nettle-3.4rc2.tar.gz
All testing appreciated, in particular on non-x86 or non-gnu/linux platforms. If all goes well, I might make the release next weekend.
I've built it with MinGW on MS-Windwos, and everything seems okay, including 100% success in running "make check". The only issue I can report is these compilation warnings:
gcc -I. -DHAVE_CONFIG_H -O2 -gdwarf-4 -g3 -ggdb3 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -MT getopt.o -MD -MP -MF getopt.o.d -c getopt.c \ && true In file included from getopt.c:98:0: getopt.h:169:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] extern int getopt (); ^~~~~~ getopt.c:146:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] extern char *getenv (); ^~~~~~ getopt.c: In function '_getopt_initialize': getopt.c:272:25: warning: unused parameter 'argc' [-Wunused-parameter] _getopt_initialize (int argc, char *const *argv, const char *optstring, ^~~~ getopt.c:272:44: warning: unused parameter 'argv' [-Wunused-parameter] _getopt_initialize (int argc, char *const *argv, const char *optstring, ^~~~ getopt.c: At top level: getopt.c:1188:1: warning: no previous prototype for 'getopt' [-Wmissing-prototypes] getopt (int argc, char *const *argv, const char *optstring) ^~~~~~
Also, the package lacks the de-facto standard install-strip target, which means packagers will have to strip by hand.
Thanks.
Eli Zaretskii eliz@gnu.org writes:
I've built it with MinGW on MS-Windwos, and everything seems okay, including 100% success in running "make check".
Good! Thanks for testing. My testing with cross-mingw and wine had one link-related failure in 32-bit mode,
srcdir/configure --host i686-w64-mingw32 --enable-mini-gmp --enable-fat --disable-shared ... make check ... err:module:import_dll Library libgcc_s_sjlj-1.dll (which is needed by L"Z:\home\nisse\build\nettle-w32\testsuite\cxx-test.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"Z:\home\nisse\build\nettle-w32\testsuite\cxx-test.exe" failed, status c0000135 FAIL: cxx
Apparently, wine and mingw (debian packages) don't agree on that file.
The only issue I can report is these compilation warnings:
gcc -I. -DHAVE_CONFIG_H -O2 -gdwarf-4 -g3 -ggdb3 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -MT getopt.o -MD -MP -MF getopt.o.d -c getopt.c \ && true In file included from getopt.c:98:0: getopt.h:169:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] extern int getopt (); ^~~~~~
I'm not going to fix warnings about the getopt files, unless there's some really easy solution (e.g., getting a later version from the gnulib repository).
Also, the package lacks the de-facto standard install-strip target, which means packagers will have to strip by hand.
Which files would you like stripped? Only the executables installed from the tools/ directory? (https://www.gnu.org/prep/standards/standards.html#Standard-Targets only mention install-strip affecting executables).
Or do you also want library files stripped in some way which deletes debug info but leaves the symbol tables needed for linking? Not sure if strip --strip-debug is portable, or how install -s invokes the strip program.
Regards, /Niels
From: nisse@lysator.liu.se (Niels Möller) Cc: nettle-bugs@lists.lysator.liu.se Date: Mon, 13 Nov 2017 18:16:59 +0100
srcdir/configure --host i686-w64-mingw32 --enable-mini-gmp --enable-fat --disable-shared ... make check ... err:module:import_dll Library libgcc_s_sjlj-1.dll (which is needed by L"Z:\home\nisse\build\nettle-w32\testsuite\cxx-test.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"Z:\home\nisse\build\nettle-w32\testsuite\cxx-test.exe" failed, status c0000135 FAIL: cxx
The libgcc DLL is part of the GCC installation, so maybe you should tinker with your PATH, or copy the DLL to some other directory.
gcc -I. -DHAVE_CONFIG_H -O2 -gdwarf-4 -g3 -ggdb3 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -MT getopt.o -MD -MP -MF getopt.o.d -c getopt.c \ && true In file included from getopt.c:98:0: getopt.h:169:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] extern int getopt (); ^~~~~~
I'm not going to fix warnings about the getopt files, unless there's some really easy solution (e.g., getting a later version from the gnulib repository).
AFAIK, current versions of getopt from Gnulib don't have this problem, but the source looks very different. I agree that this is not a significant problem.
Also, the package lacks the de-facto standard install-strip target, which means packagers will have to strip by hand.
Which files would you like stripped? Only the executables installed from the tools/ directory? (https://www.gnu.org/prep/standards/standards.html#Standard-Targets only mention install-strip affecting executables).
Or do you also want library files stripped in some way which deletes debug info but leaves the symbol tables needed for linking?
Both executables and libraries (DLL and .a). The way to do this is to use "strip --strip-unneeded" for DLLs and "strip --strip-debug" followed by ranlib for static *.a libraries. I believe the latter is identical to what is done on Unix.
Not sure if strip --strip-debug is portable
It is, but it's only appropriate for static libraries.
or how install -s invokes the strip program.
I believe "install -s" is only for executable programs, not for libraries.
Thanks.
Eli Zaretskii eliz@gnu.org writes:
From: nisse@lysator.liu.se (Niels Möller) Or do you also want library files stripped in some way which deletes debug info but leaves the symbol tables needed for linking?
Both executables and libraries (DLL and .a). The way to do this is to use "strip --strip-unneeded" for DLLs and "strip --strip-debug" followed by ranlib for static *.a libraries. I believe the latter is identical to what is done on Unix.
Makes sense, but I'll not do it for this release; I imagine it will take a few iterations to get right.
Regards, /Niels
From: nisse@lysator.liu.se (Niels Möller) Cc: nettle-bugs@lists.lysator.liu.se Date: Tue, 14 Nov 2017 15:33:42 +0100
Both executables and libraries (DLL and .a). The way to do this is to use "strip --strip-unneeded" for DLLs and "strip --strip-debug" followed by ranlib for static *.a libraries. I believe the latter is identical to what is done on Unix.
Makes sense, but I'll not do it for this release; I imagine it will take a few iterations to get right.
Sure, it's not a big deal to strip manually.
Thanks.
nisse@lysator.liu.se (Niels Möller) writes:
I've prepared a "release candidate" tarball, https://www.lysator.liu.se/~nisse/archive/nettle-3.4rc2.tar.gz
All testing appreciated, in particular on non-x86 or non-gnu/linux platforms. If all goes well, I might make the release next weekend.
Eli Zaretskii eliz@gnu.org writes:
I've built it with MinGW on MS-Windwos, and everything seems okay,
And I've run a bunch of tests on the virtual machines Torbjörn Granlund maintains for gmp testing. All running some flavor gnu/linux, but covering archs arm8 (64-bit), arm7, ppc32, ppc64 (eb and el), mips64 (eb and el), s390x, m68k, alpha and hppa(!). What's been tested on these machines is basically ./configure --enable-mini-gmp && make && make check).
Desirable testing targets left, in rough order of priority:
* Android (I made a quick attempt at building nettle-3.4rc2 on my phone under termux, but it failed since termux didn't provide /bin/sh in the expected location). Unfortunately, android cross compilers are not yet available in debian (see https://wiki.debian.org/AndroidTools).
* Mac OS
* mips32
* sparc64 (there's one machine on the gcc compile farm, but I haven't yet got any account there).
* iOS (although it's questionable if Nettle can be distributed to non-jailbroken devices).
Help with these is highly appreciated.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
- sparc64 (there's one machine on the gcc compile farm, but I haven't yet got any account there).
It turned out a friend of mine had an old Ultrasparc II ("TI UltraSparc II (BlackBird)" according to /proc/cpuinfo, which seems to be a 20 years old cpu model) running debian, which he could power up and give me access to.
And happily, the tests passed.
Regards, /Niels
nettle-bugs@lists.lysator.liu.se