sci-mathematics/pari-2.1.6 had some BUGs that are now fixed: 1) wrong multilib behaviour 2) wrong handling of -fPIC compiler flag 3) wrong usage of toolchain These are all fixed now and i'd like you arches to stabilize version 2.1.6, in order to clean the directory out a bit. Additionally i added a src_test() function to the ebuild that merely tests the kernel.
Stable on ppc.
This does not appear to build on sparc (U2, U60), kernel-2.4.x, 2.6.x, gcc shown below. Error message is problem with assembly code; start of compile looks like this: (the CFLAGS are taken from make.conf): ========================================== Shall we try to build pari 2.1.6 (released) now (y/n)? [n] Ok. Type "make install" when you are ready Bye ! cd Olinux-sparc; make gp make[1]: Entering directory `/cache/tmp/portage/pari-2.1.6/work/pari-2.1.6/Olinux-sparc' /usr/lib/distcc/bin/gcc -c -O2 -mcpu=ultrasparc -pipe -fno-pie -fno-PIE -DGCC_INLINE -I. -I../src/headers -I../src/language -I/usr/include -o gp.o ../src/gp/gp.c /usr/lib/distcc/bin/gcc -c -O2 -mcpu=ultrasparc -pipe -fno-pie -fno-PIE -DGCC_INLINE -I. -I../src/headers -I../src/graph -o gp_init.o ../src/gp/gp_init.c /usr/lib/distcc/bin/gcc -c -O2 -mcpu=ultrasparc -pipe -fno-pie -fno-PIE -DGCC_INLINE -I. -I../src/headers -I../src/language -I/usr/include -o gp_rl.o ../src/gp/gp_rl.c /usr/lib/distcc/bin/gcc -c -O2 -mcpu=ultrasparc -pipe -fno-pie -fno-PIE -DGCC_INLINE -I. -I../src/headers -o highlvl.o ../src/gp/highlvl.c pariinl.h: In function `mulssmod': pariinl.h:887: error: asm-specifier for variable `hiremainder' conflicts with asm clobber list distcc[16287] ERROR: compile ../src/gp/gp_init.c on terciopelo/2 failed make[1]: *** [gp_init.o] Error 1 make[1]: *** Waiting for unfinished jobs.... pariinl.h: In function `mulssmod': pariinl.h:887: error: asm-specifier for variable `hiremainder' conflicts with asm clobber list distcc[16294] ERROR: compile ../src/gp/highlvl.c on localhost failed make[1]: *** [highlvl.o] Error 1 ../src/gp/gp_rl.c: In function `get_matches': ../src/gp/gp_rl.c:309: warning: assignment makes pointer from integer without a cast pariinl.h: In function `mulssmod': pariinl.h:887: error: asm-specifier for variable `hiremainder' conflicts with asm clobber list distcc[16289] ERROR: compile ../src/gp/gp_rl.c on terciopelo/2 failed make[1]: *** [gp_rl.o] Error 1 make: *** [gp] Error 2 ============================================================= (Even though this is distcc, it fails at this point, no matter which kerneled machine gets that module.) Here's gcc version. Although this compiler is hardened, failure still occurs if you soften it a bit with '-fno-pie -fno-PIE' (shouldn't matter, but for completeness I'm including the information.) ======================================== Reading specs from /usr/lib/gcc-lib/sparc-unknown-linux-gnu/3.3.5-20050130/specs Configured with: /home1/cache/tmp/portage/gcc-3.3.5.20050130-r1/work/gcc-3.3.5/configure --enable-version-specific-runtime-libs --prefix=/usr --bindir=/usr/sparc-unknown-linux-gnu/gcc-bin/3.3.5-20050130 --includedir=/usr/lib/gcc-lib/sparc-unknown-linux-gnu/3.3.5-20050130/include --datadir=/usr/share/gcc-data/sparc-unknown-linux-gnu/3.3.5-20050130 --mandir=/usr/share/gcc-data/sparc-unknown-linux-gnu/3.3.5-20050130/man --infodir=/usr/share/gcc-data/sparc-unknown-linux-gnu/3.3.5-20050130/info --with-gxx-include-dir=/usr/lib/gcc-lib/sparc-unknown-linux-gnu/3.3.5-20050130/include/g++-v3 --host=sparc-unknown-linux-gnu --disable-altivec --enable-nls --without-included-gettext --enable-__cxa_atexit --disable-sjlj-exceptions --enable-clocale=gnu --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix Thread model: posix gcc version 3.3.5-20050130 (Gentoo Hardened Linux 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1) ============================================
A couple more sparc comments: (1) I see I showed the failure with the softening options. It fails the same way without them (2) For your information, pari-2.1.5-r4 also fails, but with it, it's because there are some missing externals: ===================================== /usr/bin/gcc -o gp-dyn -O3 -DGCC_INLINE -Wall -Wno-implicit -fomit-frame-pointer -Xlinker -export-dynamic gp.o gp_init.o gp_rl.o highlvl.o whatnow.o plot.o plotport.o -Xlinker -rpath -Xlinker /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc:/usr/lib:/usr/lib -L/cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc -L/lib -lreadline -lncurses -L/usr/lib -lpari -L/usr/lib -lX11 -ldl -lm /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `mulll' /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `subllx' /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `addllx' /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `overflow' /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `hiremainder' /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `addmul' /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `addll' /cache/tmp/portage/pari-2.1.5-r4/work/pari-2.1.5/Olinux-sparc/libpari.so: undefined reference to `subll' ====================================
Further sparc comment: If I had to guess, I'd say that some of these problems start when the build decides that my system (ultrasparc=sparcv9) is actually sparcv8. I don't know if that is because we run in v9,32-bit-user-mode, or because it just gets it wrong. I might look at it further, but not at a very high priority, so don't feel compelled to wait for me. :) (I actually know what pari is and don't need it for anything right now.)
Stable on mips.
Alpha done.
I've removed the ~sparc keyword. Until this pari-2.1.6-xxx actually builds on ~sparc, it cannot be tested. See Comments 3 and 4 above for details. I'm leaving sparc on the CC list because this should be revisited after the build for sparc is made to work.
x86 there
on x86 stable i'm finding an ebuild circle between 2.1.6 and 2.1.5-r4... ie when i do an emerge -uDv world it will install 2.1.6 and uninstall 2.1.5-r4... next time around it will install 2.1.5-r4 and un-install 2.1.6 - both build fine...
Created attachment 59483 [details] pari-2.1.6 ebuild with sparc64 fixes This ebuild fixes the compilation issues on sparc64 systems. However sparc32 systems suffer the same problems that sparc64 systems did previously.
I can confirm that attachment id=59483 does build a working pari (gp) for sparc64. It runs its examples, and pariguide works, too, if you like that sort of thing.
So, what's up with this one? Why are the changes for sparc not in yet? Is anything holding it or do sparc people simply want sci people to add them? I think it would be wise for the spacr people to do this, as I am not sure the sci people may easily test it. Anybody on sci having a sparc machine? The herds do not seem to intersect.. Please observe that ebuild has changed (some optimization and amd64 fixes) since this last version was produced. Please base your fix on the latest version in the tree (and for this same reason it is preferable to post diffs instead). I approve the following changes: @@ -26,8 +26,12 @@ # Fix usage of toolchain tc-getAS; tc-getLD; tc-getCC; tc-getCXX + local myhost + [ "${PROFILE_ARCH}" == "sparc64" ] && myhost="sparc64-linux" \ + || myhost="$(echo ${CHOST} | cut -f "1 3" -d '-')" + ./Configure \ - --host="$(echo ${CHOST} | cut -f "1 3" -d '-')" \ + --host="${myhost}" \ --prefix=/usr \ --miscdir=/usr/share/doc/${PF} \ --datadir=/usr/share/${P} \ the rest of diff chunks I saw I suspect have to deal with ebuild changes since this fix was suggested. Please adjust accordingly. George
(In reply to comment #12) > So, what's up with this one? Why are the changes for sparc not in yet? Is > anything holding it or do sparc people simply want sci people to add them? I > think it would be wise for the spacr people to do this, as I am not sure the > sci people may easily test it. Anybody on sci having a sparc machine? The herds > do not seem to intersect.. > > Please observe that ebuild has changed (some optimization and amd64 fixes) > since this last version was produced. Please base your fix on the latest > version in the tree (and for this same reason it is preferable to post diffs > instead). > > I approve the following changes: > > @@ -26,8 +26,12 @@ > # Fix usage of toolchain > tc-getAS; tc-getLD; tc-getCC; tc-getCXX > > + local myhost > + [ "${PROFILE_ARCH}" == "sparc64" ] && myhost="sparc64-linux" \ > + || myhost="$(echo ${CHOST} | cut -f "1 3" -d '-')" > + > ./Configure \ > - --host="$(echo ${CHOST} | cut -f "1 3" -d '-')" \ > + --host="${myhost}" \ > --prefix=/usr \ > --miscdir=/usr/share/doc/${PF} \ > --datadir=/usr/share/${P} \ > > the rest of diff chunks I saw I suspect have to deal with ebuild changes since > this fix was suggested. Please adjust accordingly. > > George (In reply to comment #12) > So, what's up with this one? Why are the changes for sparc not in yet? Is > anything holding it or do sparc people simply want sci people to add them? I > think it would be wise for the spacr people to do this, as I am not sure the > sci people may easily test it. Anybody on sci having a sparc machine? The herds > do not seem to intersect.. > > Please observe that ebuild has changed (some optimization and amd64 fixes) > since this last version was produced. Please base your fix on the latest > version in the tree (and for this same reason it is preferable to post diffs > instead). > > I approve the following changes: > > @@ -26,8 +26,12 @@ > # Fix usage of toolchain > tc-getAS; tc-getLD; tc-getCC; tc-getCXX > > + local myhost > + [ "${PROFILE_ARCH}" == "sparc64" ] && myhost="sparc64-linux" \ > + || myhost="$(echo ${CHOST} | cut -f "1 3" -d '-')" > + > ./Configure \ > - --host="$(echo ${CHOST} | cut -f "1 3" -d '-')" \ > + --host="${myhost}" \ > --prefix=/usr \ > --miscdir=/usr/share/doc/${PF} \ > --datadir=/usr/share/${P} \ > > the rest of diff chunks I saw I suspect have to deal with ebuild changes since > this fix was suggested. Please adjust accordingly. > > George Are you asking sparc to make these changes to the ebuild? If so, that is possible, but we don't typically make these sorts of changes unless the maintainer requests us to. Otherwise, we get stomped on. :) If that's what you want, I can take care of it (or any other sparc person can, if some sparc developer is passionate about pari. :) )
Created attachment 72458 [details, diff] Patch pari-2.1.6.ebuild to build a working version of pari on sparc64 systems. The attached patch applies Weeve's fix to pari-2.1.6.ebuild in cvs, date 8 November 2005. With this patch, pari-2.1.6 builds, installs, and runs (so far as I can tell) correctly. If you like, I can commit it, but will not do so without permission. Regards, Ferris
Well, I was writing my answer at the very moment and it got blocked by the attachment. Anyway it is obsolete now :). The patch looks fine to me, I'll commit it in the evening (need to run to catch the train atm :)). George
Committed, thanks for the fix! Closing now, as sparc was the last one.. Although as I understand sparc32 still has some issues.. Please reopen if there is hope of getting something done for it. Closing with TEST-REQUEST for now, as a reminder to actually stabilize it.. (right now it is ~sparc). George
Yes, sparc32 has issues. The obvious fix: ========================================= > myhost="" > [ "${PROFILE_ARCH}" == "sparc64" ] && myhost="sparc64-linux" > [ "${PROFILE_ARCH}" == "sparc" ] && myhost="sparc-linux" > [ -z "${myhost}" ] && myhost="$(echo ${CHOST} | cut -f "1 3" -d '-')" > einfo "And build for ${myhost}" ========================================== sets up properly to build for sparcv8, but fails in the assembler during build with: ../src/kernel/none/mp.c: In function `addsispec': ../src/kernel/none/mp.c:76: error: asm-specifier for variable `overflow' conflicts with asm clobber list I'll look more closely at it later (but to be honest, not with very high priority because this is not a good application for sparc32 anyway) and if the problem becomes apparent, I'll post an update. ~sparc keyword should be fine, though, for pari.