From 22441d0078260f39ac499ad4a9034457f42a6e57 Mon Sep 17 00:00:00 2001 From: Camm Maguire Date: Sat, 3 May 2025 09:21:20 -0400 Subject: [PATCH] TODO: Put a short summary on the line above and replace this paragraph with a longer explanation of this change. Complete the meta-information with other relevant fields (see below for details). To make it easier, the information below has been extracted from the changelog. Adjust it or drop it. gcl27 (2.7.1-4) unstable; urgency=medium * Version_2_7_2ore3 Gbp-Pq: Name Version_2_7_2ore3 --- Makefile.am | 33 ++++--- Makefile.in | 204 ++++++++++++++++++++++++++++++++------- bin/gcl.in | 10 +- cmpnew/gcl_cmpcall.lsp | 6 +- cmpnew/gcl_cmpeval.lsp | 12 ++- cmpnew/gcl_cmpflet.lsp | 2 +- cmpnew/gcl_cmptop.lsp | 55 +++++++---- cmpnew/gcl_cmptype.lsp | 5 - configure | 95 +++++++++++++++--- configure.ac | 35 ++++--- git.tag | 2 +- h/386-macosx.h | 2 +- h/compprotos.h | 4 + h/gclincl.h.in | 6 ++ h/protoize.h | 2 - info/internal.texi | 2 +- lsp/gcl_info.lsp | 18 ++-- o/format.c | 6 +- o/main.c | 6 +- unixport/init_raw.lsp.in | 4 +- 20 files changed, 376 insertions(+), 133 deletions(-) diff --git a/Makefile.am b/Makefile.am index d819410..53d7d76 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,7 +23,7 @@ gcltkdocdir=$(docdir)/gcl-tk # primaries -noinst_PROGRAMS=bin/dpp o/grab_defs +noinst_PROGRAMS=bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) noinst_LIBRARIES=lib/libbase_gcl.a my_unixport_PROGRAMS=unixport/saved_gcl unixport/saved_ansi_gcl @@ -31,7 +31,7 @@ my_unixport_LIBRARIES=unixport/libgcl.a unixport/libansi_gcl.a bin_SCRIPTS=bin/gcl check_SCRIPTS=sb_ansi-tests/test_results sb_bench/timing_results info_TEXINFOS=info/gcl.texi info/gcl-si.texi -my_unixport_DATA=$(addprefix unixport/,init_raw.lsp gcl.script libboot.so \ +my_unixport_DATA=$(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) my_h_DATA=h/cmpinclude.h my_cmpnew_DATA=sb_cmpnew/gcl_collectfn.o cmpnew/gcl_lfun_list.lsp cmpnew/gcl_cmpopt.lsp @@ -48,6 +48,12 @@ dist_noinst_DATA= # conditionals +if AMM_LIBBOOT +LIBBOOTSO=unixport/libboot.so +else +BOOT_C=o/boot.c +endif + if AMM_GPROF LIBGPROF=lib/libgprof.a @@ -165,7 +171,7 @@ endif BUILT_SOURCES=$(BUILT_H) $(BUILT_C) CLEANFILES=$(BUILT_SOURCES) $(INI_FILES) o/boot.ini -lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) +lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C) nodist_lib_libbase_gcl_a_SOURCES=$(BUILT_C) lib_libgprof_a_SOURCES=o/gprof.c lib_libgprof_a_CFLAGS=$(AM_CFLAGS) -fno-omit-frame-pointer -pg @@ -237,7 +243,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl gcl_gprof ansi_gcl_gprof):\ unixport/saved_%: unixport/raw_% # rebuild these only when out of date unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ - unixport/libboot.so unixport/init_raw.lsp + $(LIBBOOTSO) unixport/init_raw.lsp rm -rf sb_$* # FIXME sandbox ugliness for parallel builds mkdir sb_$* cd sb_$* && \ @@ -245,14 +251,17 @@ unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \ mkdir h && \ ln -snf ../../h/cmpinclude.h h/ && \ - echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \ + touch prof_init.lsp && \ + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue rm -rf sb_$* -unixport/raw_%: unixport/lib%.a - $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro +unixport/raw_%: unixport/lib%.a $(FF) $(LF) + $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp @@ -464,15 +473,15 @@ o/boot.h: %.h: %.ini cat $< >> $@ echo '}' >> $@ -CLEANFILES+=unixport/libboot.so -unixport/libboot.so: o/boot.c o/boot.h +CLEANFILES+=$(LIBBOOTSO) +$(LIBBOOTSO): o/boot.c o/boot.h $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H # parallel builds can only have one target accessing an intermediate file # solved with BUILT_SOURCES -o/%.ini: o/%.c | o/grab_defs +o/%.ini: o/%.c | o/grab_defs$(EXEEXT) @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ @rm -f new_$(@F) @@ -540,8 +549,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_collectfn.lsp | unixport/saved_gcl [ -d $(@D) ] || mkdir -p $(@D) $(word 1,$|) -compile $< -o $@ -%.c: %.d | bin/dpp - bin/dpp $< $@ +%.c: %.d | bin/dpp$(EXEEXT) + $| $< $@ gcl-tk/demos gcl-tk $(MY_DIRS): % : [ -d $@ ] || mkdir -p $@ diff --git a/Makefile.in b/Makefile.in index 3bd688c..41a7208 100644 --- a/Makefile.in +++ b/Makefile.in @@ -93,7 +93,6 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) my_unixport_PROGRAMS = unixport/saved_gcl$(EXEEXT) \ unixport/saved_ansi_gcl$(EXEEXT) $(am__EXEEXT_1) @AMM_GPROF_TRUE@am__append_1 = $(LIBGPROF) lib/libbase_gcl_gprof.a @@ -176,6 +175,56 @@ am__v_AR_1 = lib_libbase_gcl_a_AR = $(AR) $(ARFLAGS) lib_libbase_gcl_a_RANLIB = $(RANLIB) lib_libbase_gcl_a_LIBADD = +am__lib_libbase_gcl_a_SOURCES_DIST = o/typespec.c o/alloc.c o/gbc.c \ + o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ + o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ + o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ + o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ + o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ + o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ + o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ + o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ + o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ + o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ + o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ + o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ + o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ + h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ + h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ + h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ + h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ + h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ + h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ + h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ + o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ + h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ + h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ + h/cmponly_last.h h/elf32_armhf_reloc.h \ + h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ + h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ + h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ + h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ + h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ + h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ + h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ + h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \ + h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \ + h/elf64_loongarch64_reloc.h \ + h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \ + h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \ + h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \ + h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \ + h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \ + h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \ + h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \ + h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \ + h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \ + h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \ + h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \ + h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \ + h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \ + h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \ + h/solaris-i386.h o/boot.c am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \ o/bitop.$(OBJEXT) o/main.$(OBJEXT) o/eval.$(OBJEXT) \ @@ -202,20 +251,71 @@ am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \ o/bzero.$(OBJEXT) o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \ o/mapfun.$(OBJEXT) am__objects_2 = +@AMM_LIBBOOT_FALSE@am__objects_3 = o/boot.$(OBJEXT) am_lib_libbase_gcl_a_OBJECTS = $(am__objects_1) $(am__objects_2) \ - $(am__objects_2) $(am__objects_2) -am__objects_3 = o/character.$(OBJEXT) o/file.$(OBJEXT) \ + $(am__objects_2) $(am__objects_2) $(am__objects_3) +am__objects_4 = o/character.$(OBJEXT) o/file.$(OBJEXT) \ o/gcl_readline.$(OBJEXT) o/hash.$(OBJEXT) o/list.$(OBJEXT) \ o/package.$(OBJEXT) o/pathname.$(OBJEXT) o/print.$(OBJEXT) \ o/read.$(OBJEXT) o/sequence.$(OBJEXT) o/string.$(OBJEXT) \ o/symbol.$(OBJEXT) o/new_init.$(OBJEXT) -nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_3) +nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_4) lib_libbase_gcl_a_OBJECTS = $(am_lib_libbase_gcl_a_OBJECTS) \ $(nodist_lib_libbase_gcl_a_OBJECTS) lib_libbase_gcl_gprof_a_AR = $(AR) $(ARFLAGS) lib_libbase_gcl_gprof_a_RANLIB = $(RANLIB) lib_libbase_gcl_gprof_a_LIBADD = -am__objects_4 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ +am__lib_libbase_gcl_gprof_a_SOURCES_DIST = o/typespec.c o/alloc.c \ + o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ + o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ + o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ + o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ + o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ + o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ + o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ + o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ + o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ + o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ + o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ + o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ + o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ + h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ + h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ + h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ + h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ + h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ + h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ + h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ + o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ + h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ + h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ + h/cmponly_last.h h/elf32_armhf_reloc.h \ + h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ + h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ + h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ + h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ + h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ + h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ + h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ + h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \ + h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \ + h/elf64_loongarch64_reloc.h \ + h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \ + h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \ + h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \ + h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \ + h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \ + h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \ + h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \ + h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \ + h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \ + h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \ + h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \ + h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \ + h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \ + h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \ + h/solaris-i386.h o/boot.c o/gprof.c +am__objects_5 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT) \ @@ -281,11 +381,13 @@ am__objects_4 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT) -am__objects_5 = $(am__objects_4) $(am__objects_2) $(am__objects_2) \ - $(am__objects_2) -am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_5) \ +@AMM_LIBBOOT_FALSE@am__objects_6 = \ +@AMM_LIBBOOT_FALSE@ o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT) +am__objects_7 = $(am__objects_5) $(am__objects_2) $(am__objects_2) \ + $(am__objects_2) $(am__objects_6) +am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7) \ o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT) -am__objects_6 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ +am__objects_8 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-file.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-gcl_readline.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-hash.$(OBJEXT) \ @@ -298,8 +400,8 @@ am__objects_6 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-string.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-symbol.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT) -am__objects_7 = $(am__objects_6) -nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7) +am__objects_9 = $(am__objects_8) +nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_9) lib_libbase_gcl_gprof_a_OBJECTS = \ $(am_lib_libbase_gcl_gprof_a_OBJECTS) \ $(nodist_lib_libbase_gcl_gprof_a_OBJECTS) @@ -311,20 +413,20 @@ lib_libgprof_a_OBJECTS = $(am_lib_libgprof_a_OBJECTS) lib_libxgcl_a_AR = $(AR) $(ARFLAGS) lib_libxgcl_a_RANLIB = $(RANLIB) lib_libxgcl_a_LIBADD = -am__objects_8 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \ +am__objects_10 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \ xgcl-2/XStruct-2.$(OBJEXT) xgcl-2/XStruct-4.$(OBJEXT) \ xgcl-2/Xutil-2.$(OBJEXT) -am_lib_libxgcl_a_OBJECTS = $(am__objects_8) +am_lib_libxgcl_a_OBJECTS = $(am__objects_10) lib_libxgcl_a_OBJECTS = $(am_lib_libxgcl_a_OBJECTS) lib_libxgcl_gprof_a_AR = $(AR) $(ARFLAGS) lib_libxgcl_gprof_a_RANLIB = $(RANLIB) lib_libxgcl_gprof_a_LIBADD = -am__objects_9 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \ +am__objects_11 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-general-c.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-XStruct-2.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-XStruct-4.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-Xutil-2.$(OBJEXT) -am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_9) +am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_11) lib_libxgcl_gprof_a_OBJECTS = $(am_lib_libxgcl_gprof_a_OBJECTS) unixport_libansi_gcl_a_AR = $(AR) $(ARFLAGS) unixport_libansi_gcl_a_RANLIB = $(RANLIB) @@ -351,10 +453,10 @@ unixport_libgcl_gprof_a_OBJECTS = \ bin_dpp_SOURCES = bin/dpp.c bin_dpp_OBJECTS = bin/dpp.$(OBJEXT) bin_dpp_LDADD = $(LDADD) -am__objects_10 = gcl-tk/gcltkaux-guis.$(OBJEXT) \ +am__objects_12 = gcl-tk/gcltkaux-guis.$(OBJEXT) \ gcl-tk/gcltkaux-tkAppInit.$(OBJEXT) \ gcl-tk/gcltkaux-tkMain.$(OBJEXT) -am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_10) +am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_12) gcl_tk_gcltkaux_OBJECTS = $(am_gcl_tk_gcltkaux_OBJECTS) am__DEPENDENCIES_1 = gcl_tk_gcltkaux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -400,8 +502,8 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.Po \ o/$(DEPDIR)/array.Po o/$(DEPDIR)/assignment.Po \ o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bcmp.Po o/$(DEPDIR)/bcopy.Po \ o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po o/$(DEPDIR)/bind.Po \ - o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/bzero.Po \ - o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ + o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \ + o/$(DEPDIR)/bzero.Po o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ o/$(DEPDIR)/character.Po o/$(DEPDIR)/clxsocket.Po \ o/$(DEPDIR)/cmpaux.Po o/$(DEPDIR)/conditional.Po \ o/$(DEPDIR)/earith.Po o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \ @@ -422,6 +524,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po \ @@ -554,9 +657,10 @@ SOURCES = $(lib_libbase_gcl_a_SOURCES) \ $(unixport_saved_ansi_gcl_gprof_SOURCES) \ $(unixport_saved_gcl_SOURCES) \ $(unixport_saved_gcl_gprof_SOURCES) -DIST_SOURCES = $(lib_libbase_gcl_a_SOURCES) \ - $(lib_libbase_gcl_gprof_a_SOURCES) $(lib_libgprof_a_SOURCES) \ - $(lib_libxgcl_a_SOURCES) $(lib_libxgcl_gprof_a_SOURCES) \ +DIST_SOURCES = $(am__lib_libbase_gcl_a_SOURCES_DIST) \ + $(am__lib_libbase_gcl_gprof_a_SOURCES_DIST) \ + $(lib_libgprof_a_SOURCES) $(lib_libxgcl_a_SOURCES) \ + $(lib_libxgcl_gprof_a_SOURCES) \ $(unixport_libansi_gcl_a_SOURCES) \ $(unixport_libansi_gcl_gprof_a_SOURCES) \ $(unixport_libgcl_a_SOURCES) \ @@ -712,6 +816,7 @@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ EXT = @EXT@ EXTRA_LOBJS = @EXTRA_LOBJS@ +FF = @FF@ FINAL_CFLAGS = @FINAL_CFLAGS@ GCL_CC = @GCL_CC@ GMP = @GMP@ @@ -731,6 +836,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LEADING_UNDERSCORE = @LEADING_UNDERSCORE@ +LF = @LF@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LI_CC = @LI_CC@ @@ -854,6 +960,9 @@ my_cmpnewdir = $(my_libdir)/cmpnew my_clcsdir = $(my_libdir)/clcs xgcl2docdir = $(docdir)/xgcl-2 gcltkdocdir = $(docdir)/gcl-tk + +# primaries +noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) noinst_LIBRARIES = lib/libbase_gcl.a $(am__append_1) $(am__append_4) \ $(am__append_7) my_unixport_LIBRARIES = unixport/libgcl.a unixport/libansi_gcl.a \ @@ -862,7 +971,7 @@ bin_SCRIPTS = bin/gcl check_SCRIPTS = sb_ansi-tests/test_results sb_bench/timing_results info_TEXINFOS = info/gcl.texi info/gcl-si.texi $(am__append_6) \ $(am__append_9) -my_unixport_DATA = $(addprefix unixport/,init_raw.lsp gcl.script libboot.so \ +my_unixport_DATA = $(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) my_h_DATA = h/cmpinclude.h @@ -879,6 +988,8 @@ lisp_DATA = elisp/add-default.el elisp/ansi-doc.el elisp/dbl.el elisp/doc-to-tex dist_noinst_DATA = $(am__append_5) $(am__append_8) # conditionals +@AMM_LIBBOOT_TRUE@LIBBOOTSO = unixport/libboot.so +@AMM_LIBBOOT_FALSE@BOOT_C = o/boot.c @AMM_GPROF_TRUE@LIBGPROF = lib/libgprof.a #it would be nice someday to sandbox xgcl-2 and gcl-tk builds in tmpdirs @@ -968,9 +1079,8 @@ BUILT_SOURCES = $(BUILT_H) $(BUILT_C) CLEANFILES = $(BUILT_SOURCES) $(INI_FILES) o/boot.ini $(addprefix \ unixport/raw_,gcl gcl_gprof ansi_gcl ansi_gcl_gprof) \ h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h \ - unixport/libboot.so gcl-tk/demos/index.lsp \ - gcl-tk/demos/gc-monitor.o -lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) + $(LIBBOOTSO) gcl-tk/demos/index.lsp gcl-tk/demos/gc-monitor.o +lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C) nodist_lib_libbase_gcl_a_SOURCES = $(BUILT_C) lib_libgprof_a_SOURCES = o/gprof.c lib_libgprof_a_CFLAGS = $(AM_CFLAGS) -fno-omit-frame-pointer -pg @@ -1293,6 +1403,7 @@ o/bzero.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/user_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/user_match.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/mapfun.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +o/boot.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/character.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/file.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/gcl_readline.$(OBJEXT): o/$(am__dirstamp) \ @@ -1447,6 +1558,8 @@ o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT): o/$(am__dirstamp) \ o/$(DEPDIR)/$(am__dirstamp) o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT): o/$(am__dirstamp) \ o/$(DEPDIR)/$(am__dirstamp) +o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT): o/$(am__dirstamp) \ o/$(DEPDIR)/$(am__dirstamp) o/lib_libbase_gcl_gprof_a-character.$(OBJEXT): o/$(am__dirstamp) \ @@ -1654,6 +1767,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bitop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/block.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/boot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bzero.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/catch.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cfun.Po@am__quote@ # am--include-marker @@ -1688,6 +1802,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po@am__quote@ # am--include-marker @@ -2761,6 +2876,20 @@ o/lib_libbase_gcl_gprof_a-mapfun.obj: o/mapfun.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-mapfun.obj `if test -f 'o/mapfun.c'; then $(CYGPATH_W) 'o/mapfun.c'; else $(CYGPATH_W) '$(srcdir)/o/mapfun.c'; fi` +o/lib_libbase_gcl_gprof_a-boot.o: o/boot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c + +o/lib_libbase_gcl_gprof_a-boot.obj: o/boot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi` + o/lib_libbase_gcl_gprof_a-gprof.o: o/gprof.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-gprof.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo -c -o o/lib_libbase_gcl_gprof_a-gprof.o `test -f 'o/gprof.c' || echo '$(srcdir)/'`o/gprof.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Po @@ -3974,6 +4103,7 @@ distclean: distclean-am -rm -f o/$(DEPDIR)/bind.Po -rm -f o/$(DEPDIR)/bitop.Po -rm -f o/$(DEPDIR)/block.Po + -rm -f o/$(DEPDIR)/boot.Po -rm -f o/$(DEPDIR)/bzero.Po -rm -f o/$(DEPDIR)/catch.Po -rm -f o/$(DEPDIR)/cfun.Po @@ -4008,6 +4138,7 @@ distclean: distclean-am -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po @@ -4294,6 +4425,7 @@ maintainer-clean: maintainer-clean-am -rm -f o/$(DEPDIR)/bind.Po -rm -f o/$(DEPDIR)/bitop.Po -rm -f o/$(DEPDIR)/block.Po + -rm -f o/$(DEPDIR)/boot.Po -rm -f o/$(DEPDIR)/bzero.Po -rm -f o/$(DEPDIR)/catch.Po -rm -f o/$(DEPDIR)/cfun.Po @@ -4328,6 +4460,7 @@ maintainer-clean: maintainer-clean-am -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po @@ -4541,7 +4674,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl gcl_gprof ansi_gcl_gprof):\ unixport/saved_%: unixport/raw_% # rebuild these only when out of date unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ - unixport/libboot.so unixport/init_raw.lsp + $(LIBBOOTSO) unixport/init_raw.lsp rm -rf sb_$* # FIXME sandbox ugliness for parallel builds mkdir sb_$* cd sb_$* && \ @@ -4549,14 +4682,17 @@ unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \ mkdir h && \ ln -snf ../../h/cmpinclude.h h/ && \ - echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \ + touch prof_init.lsp && \ + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue rm -rf sb_$* -unixport/raw_%: unixport/lib%.a - $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro +unixport/raw_%: unixport/lib%.a $(FF) $(LF) + $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp @@ -4754,14 +4890,14 @@ o/boot.h: %.h: %.ini echo 'void gcl_init_boot(void){' >> $@ cat $< >> $@ echo '}' >> $@ -unixport/libboot.so: o/boot.c o/boot.h +$(LIBBOOTSO): o/boot.c o/boot.h $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H # parallel builds can only have one target accessing an intermediate file # solved with BUILT_SOURCES -o/%.ini: o/%.c | o/grab_defs +o/%.ini: o/%.c | o/grab_defs$(EXEEXT) @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ @rm -f new_$(@F) @@ -4824,8 +4960,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_collectfn.lsp | unixport/saved_gcl [ -d $(@D) ] || mkdir -p $(@D) $(word 1,$|) -compile $< -o $@ -%.c: %.d | bin/dpp - bin/dpp $< $@ +%.c: %.d | bin/dpp$(EXEEXT) + $| $< $@ gcl-tk/demos gcl-tk $(MY_DIRS): % : [ -d $@ ] || mkdir -p $@ diff --git a/bin/gcl.in b/bin/gcl.in index 766b675..2d10d41 100755 --- a/bin/gcl.in +++ b/bin/gcl.in @@ -5,13 +5,19 @@ VERS=@VERSION@ if [ -e /etc/default/gcl$EXT ] ; then . /etc/default/gcl$EXT ; - if ! set | grep -q -w GCL_ANSI ; then GCL_ANSI=$DEFAULT_GCL_ANSI ; fi + if ! set | grep -q -w GCL_ANSI ; then + if [ "$DEFAULT_GCL_ANSI" != "" ] ; then + GCL_ANSI="t" ; + else + GCL_ANSI="no" ; + fi + fi if ! set | grep -q -w GCL_PROF ; then GCL_PROF=$DEFAULT_GCL_PROF ; fi fi DIR=@prefix@/lib/gcl-$VERS; -if [ "$GCL_ANSI" = "" ] ; then +if [ "$GCL_ANSI" = "no" ] ; then if [ "$GCL_PROF" = "" ] ; then EXE=saved_gcl; else diff --git a/cmpnew/gcl_cmpcall.lsp b/cmpnew/gcl_cmpcall.lsp index f72c5fe..1ff8eab 100644 --- a/cmpnew/gcl_cmpcall.lsp +++ b/cmpnew/gcl_cmpcall.lsp @@ -334,8 +334,10 @@ ((append at '(*))))));let call_proc_new foil fast linking and catch errors (defun add-fast-link (fname la &optional apnarg - &aux n - (at (call-arg-types (mapcar (lambda (x) (link-rt x t)) (get-arg-types fname)) la apnarg)) + &aux n + (at (call-arg-types + (adj-call-tps-max (mapcar (lambda (x) (link-rt x t)) (get-arg-types fname))) + la apnarg)) (rt (link-rt (get-return-type fname) t)) (clp (cclosure-p fname)) (tail (list rt at clp apnarg))) diff --git a/cmpnew/gcl_cmpeval.lsp b/cmpnew/gcl_cmpeval.lsp index 6c5c62f..16898b3 100644 --- a/cmpnew/gcl_cmpeval.lsp +++ b/cmpnew/gcl_cmpeval.lsp @@ -2353,6 +2353,12 @@ (otherwise (when (or always (ltvp val)) `(vv ,val))))) +(defun encap-src-val (val) + (typecase val + (function (afe (cons 'df nil) (mf (fle val)))) + (cons (cons (encap-src-val (car val)) (encap-src-val (cdr val)))) + (t val))) + (defun c1constant-value (val always &aux (val (if (exit-to-fmla-p) (not (not val)) val))) (case val @@ -2363,11 +2369,7 @@ (when l `(location ,(make-info :type (or (ltvp val) - (object-type - (typecase val - (function (afe (cons 'df nil) (mf (fle val)))) - (list (copy-tree val)) - (t val))))) + (object-type (encap-src-val val)))) ,l)))))) (defvar *compiler-temps* diff --git a/cmpnew/gcl_cmpflet.lsp b/cmpnew/gcl_cmpflet.lsp index e1e7bdb..ba0b304 100644 --- a/cmpnew/gcl_cmpflet.lsp +++ b/cmpnew/gcl_cmpflet.lsp @@ -495,7 +495,7 @@ (clp (when clp (ccb-vs-str (fun-ref-ccb fun)))) (nm (if clp (ms clp "->fun.fun_self") nm)) (inl (g1 clp nm sig ap clp (if clp -1 (fun-level fun))))) - `(,(car sig) ,(cadr sig) + `(,(adj-call-tps-max (car sig)) ,(cadr sig) ,(if mv (flags rfa svt) (flags rfa)) ,inl))) diff --git a/cmpnew/gcl_cmptop.lsp b/cmpnew/gcl_cmptop.lsp index 33c4c7e..d8d7d45 100644 --- a/cmpnew/gcl_cmptop.lsp +++ b/cmpnew/gcl_cmptop.lsp @@ -823,7 +823,7 @@ ((cons (eql vv) t) (fm-to-string (cadr form))) ((cons (member char-value fixnum-value character-value) t) (fm-to-string (caddr form))) ((eql most-negative-fixnum) #.(string-concatenate "(" (write-to-string (1+ most-negative-fixnum)) "- 1)")) - (integer (format nil "~a" form)); string character + (fixnum (format nil "~a" form)); string character (float (format nil "~10,,,,,,'eG" form)) ((complex float) (string-concatenate "(" (fm-to-string (realpart form)) " + I * " (fm-to-string (imagpart form)) ")")))) @@ -832,7 +832,7 @@ (string-concatenate (cond ((member key '(:cnum :creal)) "") ((eq ft tt) "") - ((equal ft t) + ((equal ft t) (if *compiler-new-safety* (let ((v (member key '(:char :int :fixnum)))) (if v (si::string-concatenate (setq p "object_to_") (strcat key)) @@ -1127,11 +1127,19 @@ (let ((x (position x +c-global-arg-types+ :test 'type<=))) (if x (1+ x) 0)))) +(defconstant +max-typed-args+ + (let ((x (cdr (tp-bnds (cadr (si::sig 'c-function-argd)))))) + (if (typep x 'fixnum) (1- (truncate (integer-length x) 2)) 0))) + +(defun adj-call-tps-max (tps &aux (i -1)) + (mapcar (lambda (x) (type-or1 (>= (incf i) +max-typed-args+) x)) tps)) + (defun new-proclaimed-argd (args return) (do* ((type (f-type return) (f-type (pop args))) (i 0 (+ 2 i)) (ans type (logior ans (ash type i)))) - ((or (>= i 32) (null args)) (the (unsigned-byte 32) ans)))) + ((or (>= i #.(ash +max-typed-args+ 1)) (null args)) + (the (unsigned-byte #.(1+ (ash +max-typed-args+ 1))) ans)))) (defun type-f (x) (declare (fixnum x)) @@ -1300,14 +1308,16 @@ (defun t3defun-local-entry (fname cfun lambda-expr sp inline-info &aux specials *reg-clv* (requireds (caaddr lambda-expr)) nargs) (do ((vl requireds (cdr vl)) - (types (cadr inline-info) (cdr types))) + (types (cadr inline-info) (cdr types)) + (i 0 (1+ i))) ((endp vl)) (cond ((eq (var-kind (car vl)) 'special) (push (cons (car vl) (var-loc (car vl))) specials)) ((var-cb (car vl)) (push (list (eq 'clb (var-loc (car vl))) (car vl)) *reg-clv*)) -; ((var-cb (car vl)) (push (car vl) *reg-clv*)) ((setf (var-kind (car vl)) - (or (car (member (promoted-c-type (var-type (car vl))) +c-local-arg-types+)) 'object)))) + (or (when (< i +max-typed-args+) + (car (member (promoted-c-type (var-type (car vl))) +c-local-arg-types+))) + 'object)))) (setf (var-loc (car vl)) (cs-push (var-type (car vl)) t))) (when (is-narg-le lambda-expr) (setq nargs (car (last requireds))) @@ -1382,13 +1392,12 @@ (wt-h "#define VMRV" cm "(a_,b_)" vstu bdsu frsu " return((" (declaration-type (rep-type return-type)) ")a_);") (wt-h "#define VMR" cm "(a_) VMRV" cm "(a_,0);"))) - -(defun wt-requireds (requireds arg-types &optional first narg) +(defun wt-requireds (requireds arg-types &optional first narg &aux (i -1)) (declare (ignore arg-types)) (flet ((wt (x) (wt x) (let ((*compiler-output1* *compiler-output2*)) (wt x)))) (dolist (v requireds (wt (if narg ",...)" ")"))) (setq narg (or narg (is-narg-var v))) - (let* ((gt (global-type-bump (var-type v))) + (let* ((gt (global-type-bump (if (< (incf i) +max-typed-args+) (var-type v) t))) (cvar (cs-push gt t))) (when first (wt ",")) (setq first t) @@ -1811,6 +1820,12 @@ ;; ,@(mapcar (lambda (x y) ;; `(unbox ,(intern (symbol-name x) 'keyword) ,y)) args syms))))))) +(defun c-key-rep (key) + (ecase key + ((:object :char :int :long :float :double :fixnum :void) (string-downcase key)) + (:string "char *") + (:ustring "unsigned char *"))) + (defmacro defentry (n args c &optional (lt t) &aux (tsyms (load-time-value (mapl (lambda (x) (setf (car x) (gensym "DEFENTRY"))) @@ -1824,9 +1839,9 @@ (tps (mapcar (lambda (x) (intern (string (if (consp x) (car x) x)) 'keyword)) args)) (decl (reduce (lambda (y x) (strcat y (if (> (length y) 0) "," "") - (cdr (assoc (get x 'cmp-lisp-type) +defentry-c-rep-alist+)))) + (c-key-rep x))) tps :initial-value "")) - (decl (concatenate 'string (string-downcase rt) " " m "(" decl ");")) + (decl (concatenate 'string (c-key-rep rt) " " m "(" decl ");")) (decl (if st "" decl)) (syms (mapcar (lambda (x) (declare (ignore x)) (pop tsyms)) args))) `(defun ,n ,syms @@ -1881,14 +1896,16 @@ (setq h (fun-call fun) at (caar h) rt (cadar h) at (mapcar 'global-type-bump at) rt (global-type-bump rt));FIXME - (dolist (vl requireds) - (cond ((eq (var-kind vl) 'special) - (push (cons vl (var-loc vl)) specials)) - ((var-cb vl) (push (list (eq 'clb (var-loc vl)) vl) *reg-clv*)) -; ((var-cb vl) (push vl *reg-clv*)) - ((setf (var-kind vl) - (or (car (member (promoted-c-type (var-type vl)) +c-global-arg-types+)) 'object)))) - (setf (var-loc vl) (cs-push (var-type vl) t))) + (do ((vlp requireds (cdr vlp))(i 0 (1+ i)))((endp vlp)) + (let ((vl (car vlp))) + (cond ((eq (var-kind vl) 'special) + (push (cons vl (var-loc vl)) specials)) + ((var-cb vl) (push (list (eq 'clb (var-loc vl)) vl) *reg-clv*)) + ((setf (var-kind vl) + (or (when (< i +max-typed-args+) + (car (member (promoted-c-type (var-type vl)) +c-global-arg-types+))) + 'object)))) + (setf (var-loc vl) (cs-push (var-type vl) t)))) (wt-comment "local function " (if (fun-name fun) (fun-name fun) nil)) (wt-h "static " (declaration-type (rep-type rt)) diff --git a/cmpnew/gcl_cmptype.lsp b/cmpnew/gcl_cmptype.lsp index 4d9d9f2..a55d3bc 100644 --- a/cmpnew/gcl_cmptype.lsp +++ b/cmpnew/gcl_cmptype.lsp @@ -220,11 +220,6 @@ (list* nil +c-local-var-types-syms+)) `((object . "object ")))) -(defconstant +defentry-c-rep-alist+ - (mapcar (lambda (x &aux (z (assoc x *c-types*))) - (cons (cadr z) (eighth z))) - '(char #+64bit signed-int fixnum short-float long-float string t))) - (defconstant +cmp-type-alist+ (mapcar (lambda (x) (cons (cmp-norm-tp (car x)) (cdr x))) +type-alist+)) diff --git a/configure b/configure index 945c9e9..cf8b4c1 100755 --- a/configure +++ b/configure @@ -719,6 +719,10 @@ LDFLAGS CFLAGS CC PRELINK_CHECK +AMM_LIBBOOT_FALSE +AMM_LIBBOOT_TRUE +LF +FF host_os host_vendor host_cpu @@ -807,6 +811,7 @@ ac_user_opts=' enable_option_checking enable_silent_rules with_lispdir +enable_libboot enable_machine enable_widecons enable_safecdr @@ -1478,6 +1483,7 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") +put bootstrap code in shared library to be discarded --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs --enable-widecons will use a three word cons with simplified typing --enable-safecdr will protect cdr from immfix and speed up type processing @@ -4149,6 +4155,38 @@ case $canonical in i?86-pc-solaris*) use=solaris-i386;; esac +# Check whether --enable-libboot was given. +if test ${enable_libboot+y} +then : + enableval=$enable_libboot; libboot=$enableval +else case e in #( + e) libboot="yes" ;; +esac +fi + + +if test "$use" = "gnuwin95" ; then + FF=o/firstfile.o + + LF=o/lastfile.o + + libboot="no" +fi + + if test "$libboot" = "yes"; then + AMM_LIBBOOT_TRUE= + AMM_LIBBOOT_FALSE='#' +else + AMM_LIBBOOT_TRUE='#' + AMM_LIBBOOT_FALSE= +fi + +if test "$libboot" = "yes" ; then + +printf "%s\n" "#define USE_LIBBOOT 1" >>confdefs.h + +fi + # Check whether --enable-machine was given. if test ${enable_machine+y} then : @@ -7155,19 +7193,11 @@ case $use in assert_arg_to_cflags -mms-bitfields for i in makedefc windows/gcl.iss windows/sysdir.bat windows/install.lsp h/gclincl.h; do cat $i.in | sed 's,^\r\n$,\r\n,g' >tmp && mv tmp $i.in; - done - OLD_LDFLAGS=$LDFLAGS - assert_arg_to_ldflags -pg - GPL_FLAG="-pg" - LDFLAGS=$OLD_LDFLAGS;; + done;; *gnuwin*) assert_arg_to_cflags -fno-zero-initialized-in-bss assert_arg_to_cflags -mms-bitfields - assert_arg_to_ldflags -Wl,--stack,8000000 - OLD_LDFLAGS=$LDFLAGS - assert_arg_to_ldflags -pg - GPL_FLAG="-pg" - LDFLAGS=$OLD_LDFLAGS;; + assert_arg_to_ldflags -Wl,--stack,8000000;; 386-linux) if ! add_arg_to_cflags -msse2 || ! add_arg_to_cflags -mfpmath=sse ; then add_arg_to_cflags -ffloat-store; @@ -8738,6 +8768,41 @@ esac # mechanism, in the PAGE macro. This offset is subtracted from # addresses, in calculating a page for an address in the heap. +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 +printf %s "checking size of size_t... " >&6; } +if test ${ac_cv_sizeof_size_t+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" +then : + +else case e in #( + e) if test "$ac_cv_type_size_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (size_t) +See 'config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_size_t=0 + fi ;; +esac +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } + + + +printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h + + # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. @@ -9029,7 +9094,8 @@ esac printf %s "checking for hugepagewidth... " >&6; } j="" if test -e /proc/meminfo ; then - j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;if (j==$2) printf("%d\n",i+10)}' /proc/meminfo` + j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2; + if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}' /proc/meminfo` fi if test "$j" != "" ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $j" >&5 @@ -11661,9 +11727,6 @@ then : fi -#LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`" -LDFLAGS="`echo $GPL_FLAG $LDFLAGS`" -#AM_LDFLAGS = $LDFLAGS BASE_LDFLAGS="$LDFLAGS" LDFLAGS="" @@ -11859,6 +11922,10 @@ else am__EXEEXT_FALSE= fi +if test -z "${AMM_LIBBOOT_TRUE}" && test -z "${AMM_LIBBOOT_FALSE}"; then + as_fn_error $? "conditional \"AMM_LIBBOOT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/configure.ac b/configure.ac index c35373a..cb02d99 100644 --- a/configure.ac +++ b/configure.ac @@ -71,6 +71,22 @@ case $canonical in i?86-pc-solaris*) use=solaris-i386;; esac +AC_ARG_ENABLE([libboot],[put bootstrap code in shared library to be discarded], + [libboot=$enableval],[libboot="yes"]) + +if test "$use" = "gnuwin95" ; then + FF=o/firstfile.o + AC_SUBST(FF) + LF=o/lastfile.o + AC_SUBST(LF) + libboot="no" +fi + +AM_CONDITIONAL([AMM_LIBBOOT],[test "$libboot" = "yes"]) +if test "$libboot" = "yes" ; then + AC_DEFINE([USE_LIBBOOT],[1],[boot code in shared library]) +fi + AC_ARG_ENABLE([machine],[ --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs], [echo enable_machine=$enableval ; use=$enableval]) @@ -271,19 +287,11 @@ case $use in assert_arg_to_cflags -mms-bitfields for i in makedefc windows/gcl.iss windows/sysdir.bat windows/install.lsp h/gclincl.h; do cat $i.in | sed 's,[^\r]\n$,\r\n,g' >tmp && mv tmp $i.in; - done - OLD_LDFLAGS=$LDFLAGS - assert_arg_to_ldflags -pg - GPL_FLAG="-pg" - LDFLAGS=$OLD_LDFLAGS;; + done;; *gnuwin*) assert_arg_to_cflags -fno-zero-initialized-in-bss assert_arg_to_cflags -mms-bitfields - assert_arg_to_ldflags -Wl,--stack,8000000 - OLD_LDFLAGS=$LDFLAGS - assert_arg_to_ldflags -pg - GPL_FLAG="-pg" - LDFLAGS=$OLD_LDFLAGS;; + assert_arg_to_ldflags -Wl,--stack,8000000;; 386-linux) if ! add_arg_to_cflags -msse2 || ! add_arg_to_cflags -mfpmath=sse ; then add_arg_to_cflags -ffloat-store; @@ -793,6 +801,7 @@ esac # mechanism, in the PAGE macro. This offset is subtracted from # addresses, in calculating a page for an address in the heap. +AC_CHECK_SIZEOF(size_t,0) AC_CHECK_SIZEOF(long,0) AC_CHECK_SIZEOF(short,0) AC_CHECK_SIZEOF(int,0) @@ -853,7 +862,8 @@ esac AC_MSG_CHECKING([for hugepagewidth]) j="" if test -e /proc/meminfo ; then - j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;if (j==$2) printf("%d\n",i+10)}' /proc/meminfo` + j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2; + if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}' /proc/meminfo` fi if test "$j" != "" ; then AC_MSG_RESULT([$j]) @@ -1849,9 +1859,6 @@ AC_CONFIG_FILES([bin/gcl]) AC_CHECK_HEADERS(sys/mman.h,AC_CHECK_FUNCS(mprotect)) AC_CHECK_HEADERS(alloca.h) -#LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`" -LDFLAGS="`echo $GPL_FLAG $LDFLAGS`" -#AM_LDFLAGS = $LDFLAGS BASE_LDFLAGS="$LDFLAGS" LDFLAGS="" AC_SUBST(BASE_LDFLAGS) diff --git a/git.tag b/git.tag index 14ee5e3..fb66ed5 100644 --- a/git.tag +++ b/git.tag @@ -1,2 +1,2 @@ -"Version_2_7_2ore2" +"Version_2_7_2ore3" diff --git a/h/386-macosx.h b/h/386-macosx.h index d724430..f00069f 100644 --- a/h/386-macosx.h +++ b/h/386-macosx.h @@ -132,7 +132,7 @@ if (realpath (buf, fub) == 0) { \ #define UC(a_) ((ucontext_t *)a_) #define SF(a_) ((siginfo_t *)a_) -#define FPE_CODE(i_,v_) make_fixnum(FFN(fSfpe_code)(*(fixnum *)&UC(v_)->uc_mcontext->__fs.__fpu_fsw,UC(v_)->uc_mcontext->__fs.__fpu_mxcsr)) +#define FPE_CODE(i_,v_) make_fixnum((fixnum)FFN(fSfpe_code)(*(fixnum *)&UC(v_)->uc_mcontext->__fs.__fpu_fsw,UC(v_)->uc_mcontext->__fs.__fpu_mxcsr)) #define FPE_ADDR(i_,v_) make_fixnum(UC(v_)->uc_mcontext->__fs.__fpu_fop ? UC(v_)->uc_mcontext->__fs.__fpu_ip : (fixnum)SF(i_)->si_addr) #define FPE_CTXT(v_) list(3,make_fixnum((fixnum)&UC(v_)->uc_mcontext->__ss), \ make_fixnum((fixnum)&UC(v_)->uc_mcontext->__fs.__fpu_stmm0), \ diff --git a/h/compprotos.h b/h/compprotos.h index 4008be1..1347f02 100644 --- a/h/compprotos.h +++ b/h/compprotos.h @@ -85,7 +85,11 @@ char object_to_char(object); void not_a_symbol(object); object number_expt(object,object); object fLrow_major_aref(object,fixnum); +#if SIZEOF_SIZE_T == SIZEOF_INT +void *alloca(unsigned); +#else void *alloca(unsigned long); +#endif object cmod(object); object ctimes(object,object); object cdifference(object,object); diff --git a/h/gclincl.h.in b/h/gclincl.h.in index aa98d86..069435b 100644 --- a/h/gclincl.h.in +++ b/h/gclincl.h.in @@ -315,6 +315,9 @@ /* The size of 'short', as computed by sizeof. */ #undef SIZEOF_SHORT +/* The size of 'size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + /* staticly linked images */ #undef STATIC_LINKING @@ -332,6 +335,9 @@ /* use gprof */ #undef USE_GPROF +/* boot code in shared library */ +#undef USE_LIBBOOT + /* use readline library */ #undef USE_READLINE diff --git a/h/protoize.h b/h/protoize.h index 8abf198..c053e89 100644 --- a/h/protoize.h +++ b/h/protoize.h @@ -1450,8 +1450,6 @@ void init_shared_memory(void); void * object_to_pointer(object); -void * alloca(unsigned long); - object make_dcomplex(dcomplex); object find_init_string(const char *); diff --git a/info/internal.texi b/info/internal.texi index 5a9b88d..5adc7e8 100755 --- a/info/internal.texi +++ b/info/internal.texi @@ -218,7 +218,7 @@ GCL specific: The compiler defines a Lisp function whose body consists of a calling sequence to the C language function specified by C-FUNCTION. The interpreter ignores this form. The ARG-TYPES specifies the C types of the arguments which C-FUNCTION requires. The list of allowed types is (object -char int float double string). Code will be produced to coerce from a lisp +char int long float double string). Code will be produced to coerce from a lisp object to the appropriate type before passing the argument to the C-FUNCTION. The c-function should be of the form (c-result-type c-fname) where c-result-type is a member of (void object char int float double string). diff --git a/lsp/gcl_info.lsp b/lsp/gcl_info.lsp index 5a54b12..303c31a 100644 --- a/lsp/gcl_info.lsp +++ b/lsp/gcl_info.lsp @@ -96,18 +96,12 @@ (defun get-index-node () (or (third *current-info-data*) - (let* ( - s - (node-string (car (nth 1 *current-info-data*))) - (node - (and node-string (car (get-nodes "Index" node-string))))) - (when node - (setq s (show-info - node - nil - nil - )) - (setf (third *current-info-data*) s))))) + (let* ((node-string (car (nth 1 *current-info-data*))) + (nodes (when node-string (get-nodes "Index" node-string)))) + (when nodes + (setf (third *current-info-data*) + (reduce 'string-concatenate + (mapcar (lambda (x) (show-info x nil nil)) nodes))))))) (defun nodes-from-index (pat &aux (i 0) ans (*case-fold-search* t) *match-data*) diff --git a/o/format.c b/o/format.c index ceb218c..21e61a4 100644 --- a/o/format.c +++ b/o/format.c @@ -160,11 +160,11 @@ object sSAindent_formatted_outputA; VOL int old_fmt_index; \ VOL int old_fmt_end; \ VOL object old_fmt_iteration_list; \ - jmp_bufp VOL old_fmt_jmp_bufp; \ + jmp_bufp VOL old_fmt_jmp_bufp; \ VOL int old_fmt_indents; \ VOL object old_fmt_string ; \ - VOL object(*old_fmt_advance)(void) ; \ - VOL void (*old_fmt_lt)(volatile bool,bool) ; \ + object(*VOL old_fmt_advance)(void) ; \ + void (*VOL old_fmt_lt)(volatile bool,bool) ; \ VOL format_parameter *old_fmt_paramp #define fmt_save old_fmt_stream = fmt_stream; \ old_ctl_origin = ctl_origin; \ diff --git a/o/main.c b/o/main.c index 7728f61..79fd138 100644 --- a/o/main.c +++ b/o/main.c @@ -582,7 +582,7 @@ void init_boot(void) { char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self; -#ifndef __CYGWIN__ +#ifdef USE_LIBBOOT void *v,*q; #endif char *z,*s="libboot.so"; @@ -592,14 +592,14 @@ init_boot(void) { sSAoptimize_maximum_pagesA->s.s_dbind=Cnil; z=alloca(n); snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s); -#ifndef __CYGWIN__ +#ifdef USE_LIBBOOT if (!(v=dlopen(z,RTLD_LAZY|RTLD_GLOBAL))) printf("%s\n",dlerror()); if (!(q=dlsym(v,"gcl_init_boot"))) printf("%s\n",dlerror()); #endif initializing_boot=1; -#ifdef __CYGWIN__ +#ifndef USE_LIBBOOT { extern void gcl_init_boot(void); gcl_init_boot(); diff --git a/unixport/init_raw.lsp.in b/unixport/init_raw.lsp.in index a4471dc..1b5f38c 100644 --- a/unixport/init_raw.lsp.in +++ b/unixport/init_raw.lsp.in @@ -90,13 +90,13 @@ (in-package :compiler) (setq *cc* @LI_CC@ - *default-prof-p* (> (length @LI_DFP@) 0) *ld* @LI_LD@ *ld-libs* @LI_LD_LIBS@ *ld-libs* (concatenate 'string "-l" #+ansi-cl "ansi_" "gcl" #+gprof "_gprof" " " *ld-libs*) *opt-three* @LI_OPT_THREE@ *opt-two* @LI_OPT_TWO@ - *init-lsp* @LI_INIT_LSP@) + *init-lsp* @LI_INIT_LSP@ + si::*info-paths* (cons "@prefix@/share/info/" si::*info-paths*)) (import 'si::(clines defentry defcfun object void int double quit bye gbc system commonp *break-on-warnings* make-char char-bits char-font -- 2.30.2