Hi, This is a small ebuild for the CLN library version 1.1.5. This C++ library deals with numbers (unlimited precision). gnu mp (gmp) library isn't needed, but if installed, cln will link against it to achieve better performance. Pierre-Henri Jondot
Created attachment 2102 [details] the cln ebuild
Sorry, forgot to suggest a dir to place this ebuild : I suggest dev-libs (if another dir is chosen, the dependancy for GiNaC, that needs CLN and for which I'll post an ebuild soon will have to be edited.)
Created attachment 2297 [details] new cln-1.1.5 ebuild Just a cosmetic change : deleted the Author line. Tested with gcc 3.1 too. (Strangely enough, I have not been authorized to make obsolete the previous cln ebuild.)
Hi Pierre-Henri Thanks for a submission! I am checking out the ebuild and I've got a problem: compile finishes with an error. I am attaching the tail of the log. This is already after replacing emake with make (parallel builds some times cause trouble, but in this case this is something else). What was your acrhitecture? Could you please try to trace this problem? BTW, Author, Maintainer and other supplementary info is now supposed to go into changeLog, so that everybody gets the proper credit, etc. George ---------------------- tail of the build: /bin/sh ../libtool --mode=compile g++ -march=i686 -O2 -pipe -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-loop-opt -malign-functions=4 -fexpensive-optimizations -ffast-math -I../include -I../include -I./integer -I./base/digitseq -I./base/digit -Ibase -I./base -c ./numtheory/cl_IF_trialdiv.cc rm -f .libs/cl_IF_trialdiv.lo g++ -march=i686 -O2 -pipe -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-loop-opt -malign-functions=4 -fexpensive-optimizations -ffast-math -I../include -I../include -I./integer -I./base/digitseq -I./base/digit -Ibase -I./base -c ./numtheory/cl_IF_trialdiv.cc -fPIC -DPIC -o .libs/cl_IF_trialdiv.lo {standard input}: Assembler messages: {standard input}:218: Error: symbol `.LEHB14172' is already defined {standard input}:227: Error: symbol `.LEHE14172' is already defined {standard input}:248: Error: symbol `.LEHB14172' is already defined {standard input}:257: Error: symbol `.LEHE14172' is already defined make[2]: *** [cl_IF_trialdiv.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/cln-1.1.5/work/cln-1.1.5/src' make[1]: *** [numtheory.target] Error 2 make[1]: Leaving directory `/var/tmp/portage/cln-1.1.5/work/cln-1.1.5/src' make: *** [all] Error 2
Argh ! Most probably your CFLAGS. cln was tested in ix86, gcc 2.95 and gcc 3.1 with the following CFLAGS : -march=athlon-xp -fomit-frame-pointer -mfpmath=sse -funroll-loops -msse -m3dnow -mmmx -O3 -pipe (except that it wouldn't build with O3 and O3 was replaced by O2 in the ebuild.) I guess one of the following flags is the culprit, but I'm afraid that I won't be able to investigate in the following days, as I'm going today. If necessary I'll make the necessary tests when I return. (in 7-8 days) I'll add a changelog too and try to double check it as regards new ebuilds policy. So one of the following (or a combinaison of ?) make the building fail : -fforce-addr -frerun-loop-opt -malign-functions=4 -fexpensive-optimizations -ffast-math
Created attachment 3568 [details] I hope final cln-1.1.5 ebuild
Created attachment 3569 [details] Changelog
Ok, finally found out the culprit that was -funroll-loops that makes the building fails but only with gcc 2.95.3. (Couldn't reproduce the problem with gcc 3.1. 3.2 not tested yet, but I do guess it will work the same as gcc 3.1). Please find attached a modified cln ebuild (making obsoletes the previously submitted of course) and a changelog. (I do hope the syntax is correct, but I did not find the skeleton file quite clear...) Pierre-Henri Jondot.
Hi Pierre-Henri. Sorry for the delay, caused by the combination of my "vacation" and a freeze that was just lifted. I processed the new version of ebuild. There were few variables missing (I think SLOT and KEYWORDS). More importantly I changed C[XX]FLAGS filtering to use flag-o-matic eclass. You can see the ebuild for details. Also the package did not like parallel make for whatever reason, so I changed emake to make. Now that made it build and install Ok, so I committed it. Please test and report. The ebuild is keymasked - you will need to remove '~' from the KEYWORDS for your arch or add ~x86 to ACCEPT_KEYWORDS in make.conf. Thank you for your work! George