gcl-devel
[Top][All Lists]
Advanced

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

Re: Branch Version_2_7_0pre


From: Kirill A. Korinsky
Subject: Re: Branch Version_2_7_0pre
Date: Sat, 23 Dec 2023 17:44:45 +0100

Status update on i386:

1. ./configure had passed

2. gprof was enabled by default again which lead to

Undefined symbols for architecture i386:
  "__mcleanup", referenced from:
      _fSmcleanup in libpre_gcl.a(gprof.o)
      _gprof_cleanup in libpre_gcl.a(gprof.o)
ld: symbol(s) not found for architecture i386

May we ban gprof on macOS completley?

3. Unfortunately system's gcc / ld is too old, so old that it doesn't support -no_pie this can be excluded by patch like this:

--- configure.in
+++ configure.in
@@ -341,7 +341,9 @@ case $use in
     386-macosx)
 # assert_arg_to_cflags -Wno-error=implicit-function-declaration
  add_arg_to_cflags -Wno-incomplete-setjmp-declaration
- assert_arg_to_ldflags -Wl,-no_pie
+ if test "$build_cpu" != "i386" ; then
+   assert_arg_to_ldflags -Wl,-no_pie
+ fi
  if test "$build_cpu" = "x86_64" ; then
     assert_arg_to_cflags -m64
     assert_arg_to_ldflags -m64

anyway, it leads to an error:

grep: raw_pre_gcl_map: No such file or directory
touch raw_pre_gcl_map
/usr/bin/gcc-4.2 -std=gnu99 -Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -arch i386 -no-pie -m32 -Wl,-headerpad,56 -o raw_pre_gcl   -L.   -lpre_gcl `echo -lm  -lgmp -lreadline | sed -e 's/-lncurses/ /'` -lc -lgclp
ld: absolute addressing (perhaps -mdynamic-no-pic) used in _Llower_case_p from ./libpre_gcl.a(character.o) not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocs
collect2: ld returned 1 exit status
make[1]: *** [raw_pre_gcl_map] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_Volumes_SharedFolders_Home_src_macports-ports_lang_gcl/gcl-devel/work/33a195d5cec2a7f8f563e11c0f1a3011ea0b30a0/gcl/unixport'
make: *** [unixport/saved_pre_gcl] Error 2

4. So, I've decided to ban system's compiler. MacPorts uses clang by default which lead  to an issue:
# ld: illegal text-relocation to ___stack_chk_guard in /usr/lib/libSystem.dylib from _emsg in ...

Somewhere here I feel that ban clang as well right now isn't bad idea :)

5. So, it had compiled suceffuly by GCC-7 which lead to the issue:

grep: raw_pre_gcl_map: No such file or directory
touch raw_pre_gcl_map
/opt/local/bin/gcc-mp-7 -Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -arch i386 -no-pie -Wl,-no_pie -m32 -Wl,-headerpad,56 -o raw_pre_gcl   -L.   -lpre_gcl `echo -lm  -lgmp -lreadline | sed -e 's/-lncurses/ /'` -lc -lgclp
cp init_raw.lsp foo
echo "(unless si::*quit-tags* (in-package \"USER\")(system:save-system \"saved_pre_gcl\"))" >>foo
ar x libpre_gcl.a $(ar t libpre_gcl.a |grep ^gcl_)
/opt/local/var/macports/build/_Volumes_SharedFolders_Home_src_macports-ports_lang_gcl/gcl-devel/work/33a195d5cec2a7f8f563e11c0f1a3011ea0b30a0/gcl/unixport/raw_pre_gcl /opt/local/var/macports/build/_Volumes_SharedFolders_Home_src_macports-ports_lang_gcl/gcl-devel/work/33a195d5cec2a7f8f563e11c0f1a3011ea0b30a0/gcl/unixport/ -libdir /opt/local/var/macports/build/_Volumes_SharedFolders_Home_src_macports-ports_lang_gcl/gcl-devel/work/33a195d5cec2a7f8f563e11c0f1a3011ea0b30a0/gcl/ < foo
/bin/sh: line 1: 25726 Illegal instruction     /opt/local/var/macports/build/_Volumes_SharedFolders_Home_src_macports-ports_lang_gcl/gcl-devel/work/33a195d5cec2a7f8f563e11c0f1a3011ea0b30a0/gcl/unixport/raw_pre_gcl /opt/local/var/macports/build/_Volumes_SharedFolders_Home_src_macports-ports_lang_gcl/gcl-devel/work/33a195d5cec2a7f8f563e11c0f1a3011ea0b30a0/gcl/unixport/ -libdir /opt/local/var/macports/build/_Volumes_SharedFolders_Home_src_macports-ports_lang_gcl/gcl-devel/work/33a195d5cec2a7f8f563e11c0f1a3011ea0b30a0/gcl/ < foo
make[1]: *** [saved_pre_gcl] Error 132

which probably the same that I've investigated in different thread.

-- 
wbr, Kirill

On 23. Dec 2023, at 16:25, Camm Maguire <camm@maguirefamily.org> wrote:

I've committed some preliminary support for this.  Please note the
register context code is highly non-portable and will take some love to
get right on macosx.  This should be an optional feature.  These macros
support disassembling code at the point of FPE errors.  When all is
ready, you might try

(load (compile-file "../lsp/gcl_fpe_test.lsp"))

Take care,

"Kirill A. Korinsky" <kirill@korins.ky> writes:

i386

1. it has missed AC_CHECK_SIZEOF(char,0) in configure.in

2. it has missed FPE_RLST for the case non x86_64, see config.h and 386-macosx.h

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

Attachment: signature.asc
Description: Message signed with OpenPGP


reply via email to

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