gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Maxima-discuss] Compiling pregexp.lisp fails with GCL?


From: Camm Maguire
Subject: Re: [Maxima-discuss] Compiling pregexp.lisp fails with GCL?
Date: Sun, 07 Aug 2022 12:34:17 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

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" <vttoth@vttoth.com> 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 <camm@maguirefamily.org>
>> Sent: Friday, August 5, 2022 10:58 AM
>> To: Viktor T. Toth <vttoth@vttoth.com>; camm@maguirefamily.org
>> Cc: 'Robert Dodier' <robert.dodier@gmail.com>; gcl-devel@gnu.org
>> 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" <vttoth@vttoth.com> 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 <robert.dodier@gmail.com>
>> >> Sent: Thursday, August 4, 2022 1:41 PM
>> >> To: Camm Maguire <camm@maguirefamily.org>
>> >> Cc: Viktor T. Toth <vttoth@vttoth.com>; gcl-devel@gnu.org
>> >> 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                                     camm@maguirefamily.org
>> ==========================================================================
>> "The earth is but one country, and mankind its citizens."  --  Baha'u'llah
>
>
>
>

-- 
Camm Maguire                                        camm@maguirefamily.org
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah



reply via email to

[Prev in Thread] Current Thread [Next in Thread]