Enrique Perez-Terron <en...@online.no> writes: | I have just downloaded open-axiom-1.3.0.tar.bz2, and attempted to build | it using the standard installed gcl from Fedora 11. | | I think the builders of Fedora-11 downloaded a CVS snapshot of gcl on | some date... Yes, here it is, in their gcl.spec: | | # The source for this package was pulled from upstream's CVS repository. Use | # the following commands to generate the tarball: | # cvs -d:pserver:anonym...@cvs.savannah.gnu.org:/sources/gcl export \ | # -r Version_2_6_8pre -D 2009-03-04 -d gcl-2.6.8 gcl | # tar -cjvf gcl-2.6.8.tar.bz2 gcl-2.6.8 | | But the code quoted below is not different in the cvs snapshot I myself | downloaded (without version and date restricting options) on 2009-10-07. | (There are differences in other parts of plt.c and fasdump.c.)
Dear Enrique, something wasn't clear to me from your description: (1) can you build OpenAxiom with the standard installed GCL on Fedora 11? (2) can you build OpenAxiom with your own version? Many thanks for our feedback. -- Gaby | | I am building on Fedora 11, with SELinux disabled: | | $ sudo getenforce | Disabled | | Also relevant: | | $ ld --version | GNU ld version 2.19.51.0.14-1.fc11 20090722 | ... | $ gcc --version | gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) | | $ gcl --version | GCL (GNU Common Lisp) 2.6.8 ANSI Apr 27 2009 12:50:17 | ... | | Just in case: (compare the build date) | | $ rpm -qi gcl | Name : gcl Relocations: (not relocatable) | Version : 2.6.8 Vendor: Fedora Project | Release : 0.3.20090303cvs.fc11 Build Date: Mon 27 Apr 2009 06:54:29 PM CEST | ... | | | (The text below was written for a different mailing list, but I decided | to send to more appropriate lists when I saw what I have written. Bear | with the excessive details.) | | During the build of open-axiom, the following command: | | > echo '(let* ((sys-cc compiler::*cc*) ' \ | > ' (sys-ld compiler::*ld*) ' \ | > ' (compiler::*cc* (concatenate (quote string) ' \ | > ' "../../libtool --mode=compile " ' \ | > ' sys-cc)) ' \ | > ' (compiler::*ld* (concatenate (quote string) ' \ | > ' "../../libtool --mode=link " ' \ | > ' sys-ld))) ' \ | > '(compiler::link (quote ("core.o")) "lisp" ' \ | > ' (format nil "(progn (let ((*load-path* (cons ~S *load-path*))'\ | > ' (si::*load-types* ~S)))' \ | > ' (when (fboundp (quote si::sgc-on))' \ | > ' (si::sgc-on nil))' \ | > ' (setq si::*top-level-hook* (read-from-string \"|AxiomCore|::|topLevel|\")))"' \ | > ' si::*system-directory* (quote (list ".lsp")))' \ | > ' "./../../src/lib/bsdsignal.o ./../../src/lib/cfuns-c.o ./../../src/lib/sockio-c.o -lutil -lm"))' \ | > | ./base-lisp | | fails with the following output: | | > GCL (GNU Common Lisp) 2.6.8 ANSI Apr 27 2009 12:50:17 | > Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) | > Binary License: GPL due to GPL'ed components: (XGCL READLINE BFD UNEXEC) | > Modifications of this banner must retain notice of a compatible license | > Dedicated to the memory of W. Schelter | > | > Use (help) to get some basic information on how to use GCL. | > Temporary directory for compiler files set to /tmp/ | > | > AxiomCore>libtool: compile: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables -Wall -DVOL=volatile -fsigned-char -pipe -I/usr/lib/gcl-2.6.8/unixport/../h -O2 -fno-strict-aliasing -c ./user-init.c -w -fPIC -DPIC -o ./.libs/user-init.o | > libtool: compile: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables -Wall -DVOL=volatile -fsigned-char -pipe -I/usr/lib/gcl-2.6.8/unixport/../h -O2 -fno-strict-aliasing -c ./user-init.c -w -o ./user-init.o >/dev/null 2>&1 | > libtool: link: gcc -o ./raw_lisp ./user-init.o core.o -Wl,-Map ./raw_lisp_map ./../../src/lib/bsdsignal.o ./../../src/lib/cfuns-c.o ./../../src/lib/sockio-c.o -L/usr/lib/gcl-2.6.8/unixport/ -lansi_gcl -lSM -lICE -lXmu -lXt -lXext -lXaw -lX11 -lgmp -lbfd -liberty -lreadline -lncurses -lc -lgclp -lutil -lm | > GCL (GNU Common Lisp) April 1994 131072 pages | > Cannot read address | > Lisp initialization failed. | > | > "lisp" | > | > AxiomCore> | | I am building using the Fedora-11 native gcl. The command "./base-lisp" | appears to be a version of gcl that has been dumped with some extra | functions and a modified prompt "AxiomCore", a few lines earlier in the | build. | | I had the same error a few days ago, and I looked at the gcl source to | find the error message "Cannot read address". I found it in | gcl-2.6.8/o/plt.c, and it appears that the function parse_plt() *must* | fail with exactly this message given the input file | src/lisp/raw_lisp_map (from the open-axiom build tree). | | The input file contains: | | > Archive member included because of file (symbol) | > | > /usr/lib/gcl-2.6.8/unixport//libansi_gcl.a(alloc.o) | > ./../../src/lib/cfuns-c.o (free) | > /usr/lib/gcl-2.6.8/unixport//libansi_gcl.a(cmpaux.o) | > ./user-init.o (gcl_init_or_load1) | | ( ... lots of stuff, then ) | | > .plt 0x000000000804ebd4 0x27b0 | > *(.plt) | > .plt 0x000000000804ebd4 0x27b0 /usr/lib/gcc/i586-redhat-linux/4.4.1/../../../crt1.o | > 0x000000000804ebe4 fileno@@GLIBC_2.0 | > 0x000000000804ebf4 getpagesize@@GLIBC_2.0 | > 0x000000000804ec04 XWidthOfScreen | > 0x000000000804ec14 fputs@@GLIBC_2.0 | > 0x000000000804ec24 abort@@GLIBC_2.0 | > 0x000000000804ec34 __errno_location@@GLIBC_2.0 | > 0x000000000804ec44 XXorRegion | | ( ... many similar lines ... ) | | > 0x0000000008051314 getgid@@GLIBC_2.0 | > 0x0000000008051324 XSetScreenSaver | > 0x0000000008051334 XChangeWindowAttributes | > 0x0000000008051344 __gmpz_add_ui | > 0x0000000008051354 XSetArcMode | > 0x0000000008051364 XParseGeometry | > 0x0000000008051374 geteuid@@GLIBC_2.0 | > *(.iplt) | > .iplt 0x0000000000000000 0x0 /usr/lib/gcc/i586-redhat-linux/4.4.1/../../../crt1.o | > | > .text 0x0000000008051390 0x33d9dc | > *(.text .stub .text.* .gnu.linkonce.t.*) | > .text 0x0000000008051390 0x24 /usr/lib/gcc/i586-redhat-linux/4.4.1/../../../crt1.o | > 0x0000000008051390 _start | > .text 0x00000000080513b4 0x0 /usr/lib/gcc/i586-redhat-linux/4.4.1/../../../crti.o | > *fill* 0x00000000080513b4 0xc 90909090 | | ( ... etc.) | | The code: | | > for (i=j=0,li=Cnil;fgets(b,sizeof(b),f);) { | | (initialize variable "i" to zero; then repeat reading lines from file | "f" into buffer "b", and for each line ...) | | > if (!memchr(b,10,sizeof(b)-1)) | > FEerror("plt buffer too small", 0); | | (fail with an error message if no newline character (code 10) is found | in the buffer (i.e. the input line was too long to fit), ...) | | > if (memcmp(b," .plt",4) && !i) | > continue; | | ("continue" - ie. read the next input line - unless a) "b" begins with | " .pl", or b) "i" is non-zero. "i" works like a switch, set it to 1 to | activate the code below for input lines not having " .pl"...) | (--notice the strange digit 4 when the string literal has 5 characters | including the leading space. A minor bug? --) | | > if (*b=='\r' || *b=='\n') { | > i=0; | > continue; | > } | | (turn the switch off again when processing an empty line ... ) | | > else | > if (!i) { | > i=1; | > continue; | > } | | ( If the switch is off, turn it on, but go back up and get the next | input line before doing anything more. This prevents the code below | from acting on the line that begins with " .pl".) | | We can only get past this point when the switch is on. The extraction | happens with | | > if (sscanf(b,"%lx%n",&u,&n)!=1) | > FEerror("Cannot read address", 0); | | which must fail when we reach the line that has "*(.iplt)" at the | start. | | I tell all this because the web is full of messages about the problems | with Fedora and SELinux, but I have SELinux disabled, and this does not | look like a compiler bug or a compiler over-optimization. | | Obviously the program expects the input to have an empty line separating | distinct parts. Maybe some tool has been changed. Maybe there used to be | an empty line just before the "*(.iplt)" line, or may be two lines | containing .iplt have been added in a recent version of the tools that | generate the map file. I have | | OK, I "fixed" it, by placing a shell script "ld" in /usr/local/bin, | which is ahead of /usr/bin in my path: | | | > #!/bin/sh | > | > set -x | > | > case "$*" in | > (*"-Map ./raw_lisp_map"*) | > /usr/bin/ld "$@" | > mv ./raw_lisp_map ./raw_lisp_map.old | > grep -v '\.iplt' ./raw_lisp_map.old > ./raw_lisp_map | > ;; | > (*) | > exec /usr/bin/ld "$@" | > ;; | > esac | | but I immediately ran into the next problem: | | | > GCL (GNU Common Lisp) April 1994 131072 pages | > Building symbol table for /home/enrique/src/build-oa/src/lisp/raw_lisp .. | > loading /usr/lib/gcl-2.6.8/unixport/../lsp/gcl_export.lsp | > Initializing gcl_defmacro.o | > Can't open file ~s | > Lisp initialization failed. | > | > "lisp" | > | > AxiomCore> | | I found the following line in the source of gcl, in file o/fasdump.c: | | > if (in == Cnil) | > FEerror("Can't open file ~s",1,d); | | I wonder if the string "~s" should have been "%s" ... | | By the way, some days ago I build my CVS snapshot of gcl; this was only | possible after adding -fno-strict-aliases to TCFLAGS in ./configure | | Enrique -- Dr. Gabriel Dos Reis (g...@cs.tamu.edu), Assistant Professor http://www.cs.tamu.edu/people/faculty/gdr Department of Computer Science & Engineering; TAMU 301, Bright Building -- College Station, TX 77843-3112 ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ open-axiom-devel mailing list open-axiom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-axiom-devel