Greetings! OK, I think I've gotten to the bottom of the inline semantics issue.
The original conditional was correct -- gcc-4 was the last version with the old semantics. Unfortunately, autoconf has since automatically added -std=gnu11 to probed $CC variables, taking gcc-4 to the new semantics. We probe the semantics directly now. Tested in current debian unstable, and debian jessie with and without -std=gnu11, and seems to work. Please try current Version_2_6_13pre (tag Version_2_6_13pre120) and let me know if it works for you too! Take care, "Viktor T. Toth" <[email protected]> writes: > Hi Camm, > > Thank you very much for that suggestion. Unfortunately it does not appear to > have solved the problem though it might have been a step in the right > direction. > > [...] > touch raw_gcl_map > gcc -std=gnu11 -Wl,-T,../unixport/gcl.script -o raw_gcl -L. -Wl,-Map > raw_gcl_map -lgcl -lX11 -lm -lgmp -lc -lgclp > ./libgcl.a(gcl_sharp.o): In function `lnabs': > gcl_sharp.c:(.text+0x17c0): multiple definition of `lnabs' > ./libgcl.a(main.o):main.c:(.text+0x3210): first defined here > ./libgcl.a(gcl_sharp.o): In function `clz': > gcl_sharp.c:(.text+0x17d0): multiple definition of `clz' > ./libgcl.a(main.o):main.c:(.text+0x3220): first defined here > ./libgcl.a(gcl_sharp.o): In function `ctz': > gcl_sharp.c:(.text+0x17f0): multiple definition of `ctz' > ./libgcl.a(main.o):main.c:(.text+0x3240): first defined here > ./libgcl.a(gcl_sharp.o): In function `fixnum_length': > [...] > [... ~14,000 more lines ...] > [...] > gcl_cmpeval.c:(.text+0x8880): multiple definition of `immnum_lcm' > ./libgcl.a(main.o):main.c:(.text+0x4910): first defined here > collect2: error: ld returned 1 exit status > make[1]: *** [raw_gcl] Error 1 > rm raw_gcl_map > make[1]: Leaving directory `/usr/local/src/gcl-2.6.13pre119/unixport' > make: *** [unixport/saved_gcl] Error 2 > > > > Concerning upgrades, gcc 4.8.5 is part of a supported CentOS > distribution with guaranteed support up to June 30 2024. "Upgrading" > in this case would mean replacing a supported version of the compiler > with an unsupported build. Upgrading CentOS is made even more > difficult by the fact that CentOS 8 is no longer an option (for > reasons extensively discussed elsewhere) so whoever is running CentOS > 7 will have to migrate in some different direction (free Red Hat, or > CentOS alternatives, or a different distro altogether.) > > > Viktor > > >> -----Original Message----- >> From: Camm Maguire <[email protected]> >> Sent: Friday, August 5, 2022 10:58 AM >> To: Viktor T. Toth <[email protected]>; [email protected] >> Cc: 'Robert Dodier' <[email protected]>; [email protected] >> Subject: Re: [Maxima-discuss] Compiling pregexp.lisp fails with GCL? >> >> Greetings! >> >> Could you please replace the following line of h/compbas.h: >> >> #if (defined(__GNUC__) && __GNUC__ <= 4) && !defined __clang__ >> >> with >> >> #if (defined(__GNUC__) && __GNUC__ <= 3) && !defined __clang__ >> >> and report the results? >> >> The inline semantics of gcc changed approximately seven years ago. gcc >> is now on version 12. The conditional above attempts to bridge and >> should be fixed, but it was barely possible for me to get a gcc-4 >> environment to test this (jessie oldest debian still available). Any >> possibility you guys could upgrade? The skew will only get worse with >> time. >> >> Take care, >> >> "Viktor T. Toth" <[email protected]> writes: >> >> > Indeed, I am getting very similar errors on CentOS 7 with slightly newer >> > versions of gcc/ld: >> > >> > $ gcc --version >> > gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) >> > [...] >> > $ ld --version >> > GNU ld version 2.27-44.base.el7_9.1 >> > [...] >> > $ head config.log | grep ./configure >> > $ ./configure --enable-ansi --enable-readline >> > --enable-tkconfig=/usr/lib64 --enable-tclconfig=/usr/lib64 >> > $ make >> > [...] >> > gcc -std=gnu11 -Wl,-T,../unixport/gcl.script -o raw_pre_gcl -L. -Wl,-Map >> > raw_pre_gcl_map -lpre_gcl -lX11 -lm >> -lgmp -lc -lgclp >> > ./libpre_gcl.a(alloc.o): In function `rb_size': >> > alloc.c:(.text+0x1600): multiple definition of `rb_size' >> > ./libpre_gcl.a(main.o):main.c:(.text+0xa80): first defined here >> > ./libpre_gcl.a(alloc.o): In function `rb_high': >> > alloc.c:(.text+0x1610): multiple definition of `rb_high' >> > ./libpre_gcl.a(main.o):main.c:(.text+0xa90): first defined here >> > [...] >> > [... about 28000 similar lines] >> > [...] >> > user_match.c:(.text+0x3e90): multiple definition of `immnum_lcm' >> > ./libpre_gcl.a(main.o):main.c:(.text+0x4910): first defined here >> > collect2: error: ld returned 1 exit status >> > make[1]: *** [raw_pre_gcl_map] Error 1 >> > make[1]: Leaving directory `/usr/local/src/gcl-2.6.13pre119/unixport' >> > make: *** [unixport/saved_pre_gcl] Error 2 >> > rm h/mcompdefs.h >> > $ >> > >> > >> > >> > >> > Viktor >> > >> > >> > >> > >> >> -----Original Message----- >> >> From: Robert Dodier <[email protected]> >> >> Sent: Thursday, August 4, 2022 1:41 PM >> >> To: Camm Maguire <[email protected]> >> >> Cc: Viktor T. Toth <[email protected]>; [email protected] >> >> Subject: Re: [Maxima-discuss] Compiling pregexp.lisp fails with GCL? >> >> >> >> Camm, here's what I get when I run make in gcl-Version_2_6_13pre119/gcl. >> >> >> >> uname -a reports: >> >> Linux freekbox 3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:23:46 >> >> UTC 2014 i686 i686 i686 GNU/Linux >> >> >> >> gcc --version reports: >> >> gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4 >> >> >> >> ld --version reports: >> >> GNU ld (GNU Binutils for Ubuntu) 2.24 >> >> >> >> Stuff reported to stdout (abridged, these are the last lines of output): >> >> >> >> [...] >> >> ar rs libpre_gcl.a ../o/cmpaux.o ../o/unixfsys.o ../o/init_pari.o >> >> ../o/regexpr.o ../o/multival.o ../o/eval.o ../o/reference.o >> >> ../o/package.o ../o/main.o ../o/num_rand.o ../o/assignment.o >> >> ../o/usig2.o ../o/block.o ../o/toplevel.o ../o/num_co.o >> >> ../o/nfunlink.o ../o/predicate.o ../o/bitop.o ../o/let.o >> >> ../o/sequence.o ../o/backq.o ../o/array.o ../o/clxsocket.o >> >> ../o/typespec.o ../o/num_log.o ../o/pathname.o ../o/new_init.o >> >> ../o/unixsave.o ../o/funlink.o ../o/print.o ../o/prog.o ../o/format.o >> >> ../o/nsocket.o ../o/alloc.o ../o/string.o ../o/bds.o ../o/file.o >> >> ../o/num_pred.o ../o/earith.o ../o/error.o ../o/fat_string.o >> >> ../o/list.o ../o/sfasl.o ../o/makefun.o ../o/unixfasl.o >> >> ../o/iteration.o ../o/conditional.o ../o/sockets.o ../o/cfun.o >> >> ../o/usig.o ../o/prelink.o ../o/num_comp.o ../o/gcl_readline.o >> >> ../o/structure.o ../o/gprof.o ../o/character.o ../o/big.o >> >> ../o/unixtime.o ../o/hash.o ../o/run_process.o ../o/number.o >> >> ../o/macros.o ../o/unixsys.o ../o/mapfun.o ../o/utils.o ../o/symbol.o >> >> ../o/num_sfun.o ../o/catch.o ../o/gbc.o ../o/num_arith.o ../o/read.o >> >> ../o/lex.o ../o/frame.o ../o/bind.o sys_pre_gcl.o >> >> cp ../o/gcllib.a libgclp.a >> >> ranlib libgclp.a >> >> cat sys_init.lsp.in | sed \ >> >> -e "s#@LI-VERS@#(`cat ../majvers`.`cat ../minvers`) `cat >> >> ../release`#1" \ >> >> -e "s#@LI-EXTVERS@#`cat ../minvers | cut -f2 -d.`#1" \ >> >> -e "s#@LI-MINVERS@#`cat ../minvers | cut -f1 -d.`#1" \ >> >> -e "s#@LI-MAJVERS@#`cat ../majvers`#1" \ >> >> -e "s#@LI-RELEASE@#`cat ../release`#1" \ >> >> -e "s#@LI-CC@#\"gcc -c -fsigned-char -pipe -fcommon >> >> -fno-builtin-malloc -fno-builtin-free -fno-PIE -fno-pie -fno-PIC >> >> -fno-pic -Wall -Wno-empty-body -Wno-unused-but-set-variable\"#1" \ >> >> -e "s#@LI-DFP@#\"\"#1" \ >> >> -e "s#@LI-LD@#\"gcc -Wl,-T,../unixport/gcl.script -o \"#1" \ >> >> -e "s#@LI-LD-LIBS@#\" -lX11 -lm -lgmp -lreadline -lc >> >> -lgclp\"#1" \ >> >> -e "s#@LI-OPT-THREE@#\"-O3 -fomit-frame-pointer\"#1" \ >> >> -e "s#@LI-OPT-TWO@#\"-O\"#1" \ >> >> -e "s#@LI-INIT-LSP@#\"sys_init.lsp\"#1" >sys_init.lsp >> >> touch raw_pre_gcl_map >> >> gcc -std=gnu11 -Wl,-T,../unixport/gcl.script -o raw_pre_gcl -L. >> >> -Wl,-Map raw_pre_gcl_map -lpre_gcl -lX11 -lm -lgmp -lreadline -lc >> >> -lgclp >> >> make[1]: Leaving directory >> >> `/home/robert/tmp/gcl-Version_2_6_13pre119/gcl/unixport' >> >> rm h/mcompdefs.h >> >> >> >> Stuff reported to stderr (abridged, these are the first lines of output): >> >> >> >> In file included from ../h/include.h:112:0, >> >> from usig.c:30: >> >> usig.c: In function ‘sigfpe3’: >> >> ../h/../h/fixnum.h:36:48: warning: initialization makes integer from >> >> pointer without a cast [enabled by default] >> >> #define make_fixnum(a_) ({register fixnum _q1=(a_);register object _q4; >> >> \ >> >> ^ >> >> ../h/linux.h:149:25: note: in expansion of macro ‘make_fixnum’ >> >> #define FPE_CODE(i_,v_) >> >> make_fixnum(FFN(fSfpe_code)(UC(v_)->uc_mcontext.fpregs->sw,((struct >> >> _fpstate *)UC(v_)->uc_mcontext.fpregs)->mxcsr)) >> >> ^ >> >> usig.c:248:36: note: in expansion of macro ‘FPE_CODE’ >> >> >> >> ifuncall3(sSfloating_point_error,FPE_CODE(i,v),FPE_ADDR(i,v),FPE_CTXT(v)); >> >> ^ >> >> ar: creating libpre_gcl.a >> >> ./libpre_gcl.a(assignment.o): In function `rb_size': >> >> assignment.c:(.text+0x830): multiple definition of `rb_size' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xac0): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `rb_high': >> >> assignment.c:(.text+0x840): multiple definition of `rb_high' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xad0): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `rb_begin': >> >> assignment.c:(.text+0x860): multiple definition of `rb_begin' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xaf0): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `rb_emptyp': >> >> assignment.c:(.text+0x880): multiple definition of `rb_emptyp' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xb10): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `ufmin': >> >> assignment.c:(.text+0x8a0): multiple definition of `ufmin' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xb30): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `ufmax': >> >> assignment.c:(.text+0x8b0): multiple definition of `ufmax' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xb40): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `emsg': >> >> assignment.c:(.text+0x8c0): multiple definition of `emsg' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xb50): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `m__gmpz_add': >> >> assignment.c:(.text+0x990): multiple definition of `m__gmpz_add' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xc20): first defined here >> >> ./libpre_gcl.a(assignment.o): In function `m__gmpz_add_ui': >> >> assignment.c:(.text+0xa50): multiple definition of `m__gmpz_add_ui' >> >> ./libpre_gcl.a(main.o):main.c:(.text+0xce0): first defined here >> >> [... about 20,000 more lines the same] >> >> >> >> Hope this helps, thanks for looking into it. >> >> >> >> Robert >> > >> > >> > >> > >> >> -- >> Camm Maguire [email protected] >> ========================================================================== >> "The earth is but one country, and mankind its citizens." -- Baha'u'llah > > > > -- Camm Maguire [email protected] ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah
