Opened 7 years ago

Closed 4 years ago

Last modified 17 months ago

#54124 closed defect (fixed)

guile @2.2.2 won't build on PPC Leopard, Mac OS X 10.5.8, because is uses non-existing /lib/cpp as C preprocessor

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version: 2.4.1
Keywords: tiger leopard snowleopard Cc:
Port: guile

Description

checking dependency style of /usr/bin/gcc-4.2... gcc3
checking how to enable C11 support... -std=gnu11
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2" && ./configure --prefix=/opt/local CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" --infodir="/opt/local/share/info" --mandir="/opt/local/share/man" --enable-regex --disable-error-on-warning --disable-silent-rules --host=powerpc-apple-darwin9 --build=powerpc-apple-darwin9 
Exit code: 1
Error: Failed to configure guile, consult /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/config.log
Error: Failed to configure guile: configure failure: command execution failed
DEBUG: Error code: NONE
DEBUG: Backtrace: configure failure: command execution failed

In config.log one can find:

configure:6228: /lib/cpp -I/opt/local/include conftest.c
./configure: line 3037: /lib/cpp: No such file or directory

configure knows this influential environment variable:

  CPP         C preprocessor

This can be fixed in Portfile, see attached patch file.

Attachments (5)

main.log (46.3 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
main.log from PPC Leopard from try with patched Portfile
Portfile.diff (608 bytes) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Patch for Portfile to find proper CPP
main.2.log (552.6 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
main.log from PPC Tiger with pipe failure
Makefile.in.diff (583 bytes) - added by ballapete (Peter "Pete" Dyballa) 4 years ago.
Patch to correct date in libguile/Makefile.in
guile.zip (1.3 MB) - added by barracuda156 17 months ago.
ppc32 prebuilts from 10.6 (three files for each of stages 0, 1, 2)

Download all attachments as: .zip

Change History (86)

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

main.log from PPC Leopard from try with patched Portfile

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: Portfile.diff added

Patch for Portfile to find proper CPP

comment:1 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

This leads to another error, as logged in config.log:

configure:29959: /usr/bin/gcc-4.2 -std=gnu11 -c -pipe -Os -arch ppc -I/opt/local/include conftest.c >&5
cc1: error: unrecognized command line option "-std=gnu11"
configure:29959: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guile"
| #define PACKAGE_TARNAME "guile"
| #define PACKAGE_VERSION "2.2.2"
| #define PACKAGE_STRING "GNU Guile 2.2.2"
| #define PACKAGE_BUGREPORT "bug-guile@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guile/"
| #define _ALL_SOURCE 1
| #define _DARWIN_C_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
| #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
| #define __STDC_WANT_IEC_60559_DFP_EXT__ 1
| #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
| #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
| #define __STDC_WANT_LIB_EXT2__ 1
| #define __STDC_WANT_MATH_SPEC_FUNCS__ 1
| #define _TANDEM_SOURCE 1
| #define _DARWIN_USE_64_BIT_INODE 1
| #define size_t unsigned int
| #define C_ALLOCA 1
| #define STACK_DIRECTION -1
| #define HAVE_ENVIRON_DECL 1
| #define HAVE_WORKING_O_NOATIME 0
| #define HAVE_WORKING_O_NOFOLLOW 0
| #define pid_t int
| #define mode_t int
| #define HAVE_DECL_ALARM 0
| #define STAT_MACROS_BROKEN 1
| #define nlink_t int
| #define restrict /**/
| #define HAVE_DECL_INET_NTOP 0
| #define HAVE_DECL_GETLOGIN 0
| #define ICONV_CONST 
| #define WORDS_BIGENDIAN 1
| #define HAVE_DECL_GETC_UNLOCKED 0
| #define MALLOC_0_IS_NONNULL 0
| #define PROMOTED_MODE_T mode_t
| #ifndef __cplusplus
| #define inline 
| #endif
| #define mbstate_t int
| #define ssize_t int
| #define HAVE_DECL_SETENV 0
| #define BITSIZEOF_PTRDIFF_T 0
| #define BITSIZEOF_SIZE_T 0
| #define BITSIZEOF_SIG_ATOMIC_T 0
| #define BITSIZEOF_WCHAR_T 0
| #define BITSIZEOF_WINT_T 0
| #define PTRDIFF_T_SUFFIX 
| #define SIZE_T_SUFFIX 
| #define SIG_ATOMIC_T_SUFFIX 
| #define WCHAR_T_SUFFIX 
| #define WINT_T_SUFFIX 
| #define TM_IN_SYS_TIME 1
| #define HAVE_DECL_TZNAME 0
| #define HAVE_DECL_VSNPRINTF 0
| #define HAVE_DECL_SNPRINTF 0
| #define HAVE_DECL_STRDUP 0
| #define HAVE_DECL_UNSETENV 0
| #define intmax_t long
| #define HAVE_DECL__SNPRINTF 0
| #define GNULIB_TEST_ACCEPT 1
| #define GNULIB_TEST_ACCEPT4 1
| #define GNULIB_TEST_BIND 1
| #define GNULIB_CANONICALIZE_LGPL 1
| #define GNULIB_TEST_CANONICALIZE_FILE_NAME 1
| #define GNULIB_TEST_REALPATH 1
| #define GNULIB_TEST_CEIL 1
| #define GNULIB_TEST_CLOSE 1
| #define GNULIB_TEST_CONNECT 1
| #define GNULIB_TEST_COPYSIGN 1
| #define HAVE_DECL_DIRFD 0
| #define GNULIB_TEST_DIRFD 1
| #define GNULIB_TEST_DUPLOCALE 1
| #define GNULIB_TEST_ENVIRON 1
| #define GNULIB_TEST_FLOOR 1
| #define GNULIB_TEST_FREXP 1
| #define GNULIB_TEST_FSTAT 1
| #define GNULIB_TEST_FSYNC 1
| #define __func__ "<unknown function>"
| #define HAVE_DECL_GAI_STRERROR 0
| #define HAVE_DECL_GETADDRINFO 0
| #define HAVE_DECL_FREEADDRINFO 0
| #define HAVE_DECL_GETNAMEINFO 0
| #define GNULIB_TEST_GETADDRINFO 1
| #define GNULIB_TEST_GETLOGIN 1
| #define GNULIB_TEST_GETPEERNAME 1
| #define GNULIB_TEST_GETSOCKNAME 1
| #define GNULIB_TEST_GETSOCKOPT 1
| #define GETTIMEOFDAY_TIMEZONE void
| #define GNULIB_TEST_GETTIMEOFDAY 1
| #define HAVE_DECL_INET_NTOP 0
| #define HAVE_DECL_INET_PTON 0
| #define HAVE_DECL_ISFINITE 0
| #define GNULIB_TEST_ISFINITE 1
| #define HAVE_DECL_ISINF 0
| #define GNULIB_TEST_ISINF 1
| #define GNULIB_TEST_ISNAN 1
| #define GNULIB_TEST_ISNAND 1
| #define GNULIB_TEST_ISNANF 1
| #define GNULIB_TEST_ISNANL 1
| #define HAVE_VISIBILITY 0
| #define GNULIB_TEST_LINK 1
| #define GNULIB_TEST_LISTEN 1
| #define GNULIB_TEST_LOG1P 1
| #define GNULIB_TEST_LSTAT 1
| #define HAVE_MALLOC_GNU 0
| #define GNULIB_MALLOC_GNU 1
| #define GNULIB_TEST_MALLOC_POSIX 1
| #define FUNC_MKDIR_DOT_BUG 1
| #define GNULIB_MKOSTEMP 1
| #define GNULIB_TEST_MKOSTEMP 1
| #define GNULIB_TEST_NL_LANGINFO 1
| #define OPEN_TRAILING_SLASH_BUG 1
| #define GNULIB_TEST_OPEN 1
| #define GNULIB_TEST_PIPE 1
| #define GNULIB_TEST_PIPE2 1
| #define GNULIB_TEST_POLL 1
| #define HAVE_DECL__PUTENV 0
| #define GNULIB_TEST_PUTENV 1
| #define GNULIB_TEST_READ 1
| #define GNULIB_TEST_READLINK 1
| #define GNULIB_TEST_RECV 1
| #define GNULIB_TEST_RECVFROM 1
| #define _REGEX_INCLUDE_LIMITS_H 1
| #define _REGEX_LARGE_OFFSETS 1
| #define re_syntax_options rpl_re_syntax_options
| #define re_set_syntax rpl_re_set_syntax
| #define re_compile_pattern rpl_re_compile_pattern
| #define re_compile_fastmap rpl_re_compile_fastmap
| #define re_search rpl_re_search
| #define re_search_2 rpl_re_search_2
| #define re_match rpl_re_match
| #define re_match_2 rpl_re_match_2
| #define re_set_registers rpl_re_set_registers
| #define re_comp rpl_re_comp
| #define re_exec rpl_re_exec
| #define regcomp rpl_regcomp
| #define regexec rpl_regexec
| #define regerror rpl_regerror
| #define regfree rpl_regfree
| #define HAVE_DECL_ISBLANK 0
| #define RENAME_TRAILING_SLASH_DEST_BUG 1
| #define RENAME_TRAILING_SLASH_SOURCE_BUG 1
| #define RENAME_DEST_EXISTS_BUG 1
| #define GNULIB_TEST_RENAME 1
| #define GNULIB_TEST_RMDIR 1
| #define GNULIB_TEST_SELECT 1
| #define GNULIB_TEST_SEND 1
| #define GNULIB_TEST_SENDTO 1
| #define GNULIB_TEST_SETENV 1
| #define GNULIB_TEST_SETSOCKOPT 1
| #define GNULIB_TEST_SHUTDOWN 1
| #define GNULIB_TEST_SOCKET 1
| /* end confdefs.h.  */
| #include <sys/types.h>
|                    #include <sys/socket.h>
| 
|                    int getpeername (int, void *, unsigned long int *);
| int
| main ()
| {
| unsigned long int len;
|                   getpeername (0, 0, &len);
|   ;
|   return 0;
| }
configure:29971: error: Cannot find a type to use in place of socklen_t

socklen_t is #defined in /usr/include/sys/socket.h:

#define _SOCKLEN_T 
typedef __darwin_socklen_t socklen_t;

The variable type __darwin_socklen_t is #defined in /usr/include/ppc/_types.h:

typedef __uint32_t __darwin_socklen_t;

I think the type __uint32_t needs to be #defined as uint32_t

comment:2 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

The same failure with lib/cpp also happens on Snow Leopard, Mac OS X 10.6.8

comment:3 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: tiger leopard snowleopard added; Leopard removed

I'm not surprised. /lib/cpp is a fallback that configure scripts use as a location for cpp when all other choices have been exhausted. It is not meant for macOS; one of the cpp locations tried earlier is meant to have worked on macOS, but has failed for another reason. That reason appears to be that this build system is trying to make Apple's gcc 4.2.1 use C11, which it does not support. If this build system requires C11 support, old compilers will have to be blacklisted.

comment:4 in reply to:  3 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to ryandesign:

That reason appears to be that this build system is trying to make Apple's gcc 4.2.1 use C11, which it does not support. If this build system requires C11 support, old compilers will have to be blacklisted.

Indeed! From config.log (on Snow Leopard):

configure:6180: checking how to enable C11 support
configure:6183: result: -std=gnu11
configure:6197: checking how to run the C preprocessor
configure:6228: /usr/bin/llvm-gcc-4.2 -std=gnu11 -E -I/opt/local/include conftest.c
cc1: error: unrecognized command line option "-std=gnu11"
configure:6228: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guile"
| #define PACKAGE_TARNAME "guile"
| #define PACKAGE_VERSION "2.2.2"
| #define PACKAGE_STRING "GNU Guile 2.2.2"
| #define PACKAGE_BUGREPORT "bug-guile@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guile/"
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| 		     Syntax error
configure:6228: /usr/bin/llvm-gcc-4.2 -std=gnu11 -E -I/opt/local/include conftest.c
cc1: error: unrecognized command line option "-std=gnu11"

comment:5 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

port upgrade guile configure.compiler=macports-gcc-6 has started to compile on Snow Leopard, on Tiger it does a fine configure job…

comment:6 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

The build went fine on Snow Leopard. Then port found that autogen @5.18.12_0 needs to be rev-upgraded. This fails with (from config.log):

configure:14135: checking for pkg-config
configure:14153: found /opt/local/bin/pkg-config
configure:14165: result: /opt/local/bin/pkg-config
configure:14190: checking pkg-config is at least version 0.9.0
configure:14193: result: yes
configure:14221: checking for guile 2.0
configure:14224: $PKG_CONFIG --exists --print-errors "guile-$v"
Package guile-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `guile-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'guile-2.0' found
configure:14227: $? = 1
configure:14221: checking for guile 1.8
configure:14224: $PKG_CONFIG --exists --print-errors "guile-$v"
Package guile-1.8 was not found in the pkg-config search path.
Perhaps you should add the directory containing `guile-1.8.pc'
to the PKG_CONFIG_PATH environment variable
No package 'guile-1.8' found
configure:14227: $? = 1
configure:14235: error: 
No Guile development packages were found.

This is because port installed /opt/local/lib/pkgconfig/guile-2.2.pc. /opt/local/lib/pkgconfig/guile-2.0.pc is gone…

New ticket for autogen?

comment:7 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

The build fails on PPC Tiger with:

./guile-snarf-docs -o regex-posix.doc regex-posix.c -- -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/opt/local/lib/libffi-3.2.1/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2 -I/opt/local/include -pipe -Os -m32
cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi          > guile-procedures.texi || { rm guile-procedures.texi; false; }
cat: stdout: Broken pipe
make[3]: *** [guile-procedures.texi] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile'

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.2.log added

main.log from PPC Tiger with pipe failure

comment:8 Changed 7 years ago by kencu (Ken)

someone beat you to it -- see ticket:54112 for the fix.

comment:9 in reply to:  8 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

someone beat you to it -- see ticket:54112 for the fix.

This works on Mac OS X 10.6.8, Snow Leopard. On PPC hardware with Tiger and Leopard Guile does not build because of the broken pipe, mentioned in 7.

comment:10 Changed 7 years ago by kencu (Ken)

Yeah, I was talking about the autogen error. I'll see if I can get to fixing the broken pipe thing for you.

BTW, you know how to "peg" a port at a certain version, so it won't update? Or roll back in the port tree to the last version that worked correctly? You need this skill on 10.4 and 10.5, because it happens all the time that new versions of ports won't build, and you must stick with older versions until the new versions get fixed (or don't). If you need to know how to do this, let me know.

comment:11 in reply to:  10 ; Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

Yeah, I was talking about the autogen error. I'll see if I can get to fixing the broken pipe thing for you.

BTW, you know how to "peg" a port at a certain version, so it won't update?

No. There is or was in port a "forget" argument…

If you need to know how to do this, let me know.

Yes, to know this would probably fine! (I am changing the Portfiles so that they do not show a new version.)

The "broken pipe" comes from the right side of the pipe. ../meta/build-env is a shell script (it sets and exports LD_LIBRARY_PATH), guild also. This one invokes the shell/scheme script /opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile/guile, whch knows at the beginning LD_LIBRARY_PATH and then resets LD_LIBRARY_PATH, exports it invokes finally /opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile/.libs/guile which probably cannot find its /opt/local/lib/libguile-2.2.1.dylib – through a cascade of internal shell script functions…

I have no idea how to dive deeper…

comment:12 Changed 7 years ago by kencu (Ken)

I wonder if the bash on 10.4 and 10.5 is just too old for this script? Why is it happening only there?

Also <https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error> looks like a clue.

comment:13 in reply to:  11 Changed 7 years ago by kencu (Ken)

Replying to ballapete:

Replying to kencu:

BTW, you know how to "peg" a port at a certain version, so it won't update? If you need to know how to do this, let me know.

Yes, to know this would probably fine! (I am changing the Portfiles so that they do not show a new version.)

Homebrew has automated this with a peg command. On Macports, you do it manually, but with more control.

The trick is to use a local repository of Portfiles that you maintain yourself, separate from the frequently-updated MacPorts ports distribution. <https://guide.macports.org/chunked/development.local-repositories.html>

You have your macports installation look first in your local repository for portfiles by putting your repo ahead of the macports repo in sources.conf. If it finds your Portfile for a port, it stops looking further and never finds the newer, incompatible current macports version.

There are two reasons I put ports in my local repo:

  1. They are huge, and I don't want to update them all the time.
  2. Newer versions are broken, and I need to stick with the last working version.

If you find ports that you don't want to update all the time (like gcc6, or clang, or other huge ports that there is no reason to update frequently on 10.4 and 10.5, you can move the ports in there (the whole port folder, with the macports structure of folders above it).

See <https://github.com/kencu/TigerPorts> , <https://github.com/kencu/LeopardPorts>, and <https://github.com/kencu/SnowLeopardPorts> for mine. You can use my repos as a start if you want, or just build your own. Sooner or later, repos like the ones I've started will be needed for all users of Tiger / Leopard / SnowLeopard, so that's why I started them last year.

Now if you have run sudo port selfupdate and found yourself with a port that won't build, you will need to go backwards in time to get the last version of that Portfile that you installed that did work, and put that port in your local repo until it gets fixed, if it ever does.

One tested way of going back in time using github is here : <https://lists.macports.org/pipermail/macports-dev/2016-December/035058.html>. There is an old page about how to do this from the svn era that is not too useful anymore after the change to github <https://trac.macports.org/wiki/howto/InstallingOlderPort>.

comment:14 in reply to:  12 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

I wonder if the bash on 10.4 and 10.5 is just too old for this script? Why is it happening only there?

It's /bin/sh, which is "GNU bash, version 3.2.17(1)-release (powerpc-apple-darwin9.0)." It works OK. The problem is with the files that build Guile. The set of executables involved in executing the right side of the pipe perform (minimised with sort -u):

+ DYLD_LIBRARY_PATH=/opt/local/var/macports/build/.../guile/work/guile-2.2.2/guile-readline/.libs
+ DYLD_LIBRARY_PATH=/opt/local/var/macports/build/.../guile/work/guile-2.2.2/libguile/.libs:
                    /opt/local/var/macports/build/.../guile/work/guile-2.2.2/guile-readline/.libs
+ DYLD_LIBRARY_PATH=/opt/local/var/macports/build/.../guile/work/guile-2.2.2/libguile/.libs:
                    /opt/local/var/macports/build/.../guile/work/guile-2.2.2/libguile/.libs:
                    /opt/local/var/macports/build/.../guile/work/guile-2.2.2/guile-readline/.libs
+ LTDL_LIBRARY_PATH=/opt/local/var/macports/build/.../guile/work/guile-2.2.2/libguile:
                    /opt/local/var/macports/build/.../guile/work/guile-2.2.2/guile-readline
+ LTDL_LIBRARY_PATH=/opt/local/var/macports/build/.../guile/work/guile-2.2.2/guile-readline

Only *one* directory with *one* dylib exists: /opt/local/var/macports/build/.../guile/work/guile-2.2.2/libguile/.libs. So the last assignments seem wrong. Anyway, gbd explains:

gdb -arch ppc --core=/cores/core.27026 
GNU gdb 6.3.50-20050815 (Apple version gdb-967) (Tue Jul 14 02:15:14 UTC 2009)
...
This GDB was configured as "powerpc-apple-darwin".
Core was generated by `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile/.libs/guile'.

So it's neither cat nor bash nor the OS but the recently built guile binary that crashes and produces the ¼ GB big core files.

comment:15 Changed 7 years ago by kencu (Ken)

Interesting guile build hang in an identical spot during the build, using clang, patched and fixed two years ago...44112

comment:16 Changed 7 years ago by kencu (Ken)

Yep. Right at the point where that broken pipe message comes in, the guile build process tries to launch the bootstrap version of guile, and that crashes. I couldn't say if this is easy / hard / impossible to fix. So I rolled back to 2.0.14.

In crashreporter, I see this error, almost identical, four consecutive times:

Process:         guile [76557]
Path:            /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile/.libs/guile
Identifier:      guile
Version:         ??? (???)
Code Type:       PPC (Native)
Parent Process:  sh [76555]

Date/Time:       2017-05-08 22:46:12.487 -0700
OS Version:      Mac OS X 10.5.8 (9L31a)
Report Version:  6
Anonymous UUID:  90829B60-7C93-4BD6-ADB9-1EB3BB6D6C40

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000002f2e330c
Crashed Thread:  0

Thread 0 Crashed:
0   libguile-2.2.1.dylib          	0x00191ab4 vm_regular_engine + 460
1   libguile-2.2.1.dylib          	0x00191dc8 vm_regular_engine + 1248
2   libguile-2.2.1.dylib          	0x00133398 scm_load_startup_files + 68
3   libguile-2.2.1.dylib          	0x001336e4 scm_i_init_guile + 676
4   libguile-2.2.1.dylib          	0x001850a4 scm_i_init_thread_for_guile + 116
5   libguile-2.2.1.dylib          	0x0018511c with_guile + 36
6   libgc.1.dylib                 	0x0005c56c GC_call_with_stack_base + 36
7   libguile-2.2.1.dylib          	0x001855a8 scm_with_guile + 56
8   libguile-2.2.1.dylib          	0x00133424 scm_boot_guile + 80
9   guile                         	0x00001f0c main + 216
10  guile                         	0x00001cd0 start + 64

Thread 1:
0   libSystem.B.dylib             	0x9000aa8c __semwait_signal + 12
1   libSystem.B.dylib             	0x90047318 _pthread_cond_wait + 1580
2   libgc.1.dylib                 	0x00062328 GC_wait_marker + 40
3   libgc.1.dylib                 	0x0005a134 GC_help_marker + 72
4   libgc.1.dylib                 	0x000638e8 GC_mark_thread + 176
5   libSystem.B.dylib             	0x90045f70 _pthread_start + 316

Thread 0 crashed with PPC Thread State 32:
  srr0: 0x00191ab4  srr1: 0x0200f030   dar: 0x2f2e330c dsisr: 0x00200000
    r0: 0x001937fc    r1: 0xbfffce30    r2: 0x00000045    r3: 0x00000000
    r4: 0x007abe80    r5: 0x00000000    r6: 0x001064b4    r7: 0x010503e0
    r8: 0x010503e0    r9: 0x000b5ed8   r10: 0x00000000   r11: 0xbfffce30
   r12: 0x24000214   r13: 0x001c18f0   r14: 0x0000ffff   r15: 0x00000000
   r16: 0x00000000   r17: 0x001d00b4   r18: 0x00712ee8   r19: 0x3fffffff
   r20: 0x2f2e330c   r21: 0x00000000   r22: 0xbfffcf28   r23: 0x0077f4c0
   r24: 0x010be020   r25: 0x00000006   r26: 0x00711af0   r27: 0x001c18f0
   r28: 0x0001007f   r29: 0x000b5ec0   r30: 0x00711aa0   r31: 0x001918f0
    cr: 0x24000212   xer: 0x00000000    lr: 0x001937fc   ctr: 0x00191a40
vrsave: 0x00000000

Binary Images:
    0x1000 -     0x1fff +guile ??? (???) <4d9413353bdc36c2a29539a8dae758cd> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile/.libs/guile
    0x5000 -     0x7ff7 +libffi.6.dylib ??? (???) <f34a014b6e4ef45113250420c903399c> /opt/local/lib/libffi.6.dylib
    0xd000 -    0x16fff +libintl.8.dylib ??? (???) <0072ebffba7cf65a54dc94ecafc8b5ac> /opt/local/lib/libintl.8.dylib
   0x4c000 -    0x6bfff +libgc.1.dylib ??? (???) <b3609483eaed03762dc321a8e6c8c7d0> /opt/local/lib/libgc.1.dylib
   0x98000 -    0x9effd +libltdl.7.dylib ??? (???) <1a75eb50d3a79ed73cebcca91adf42da> /opt/local/lib/libltdl.7.dylib
   0xa2000 -    0xacffb +libgcc_s.1.dylib ??? (???) <100de08689843cde948ad597a94fcc9d> /opt/local/lib/libgcc/libgcc_s.1.dylib
  0x105000 -   0x1c5ffd +libguile-2.2.1.dylib ??? (???) <c4b4739d50b63abaa972505dac0ac888> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile/.libs/libguile-2.2.1.dylib
  0x20a000 -   0x35ffff +libunistring.2.dylib ??? (???) <027fb77c9526b87f81da136504ad1c5e> /opt/local/lib/libunistring.2.dylib
  0x370000 -   0x468fff +libiconv.2.dylib ??? (???) <0d40023623602bdc744ebff96a976c8f> /opt/local/lib/libiconv.2.dylib
  0x474000 -   0x4d2ffb +libgmp.10.dylib ??? (???) <ff6607db1dcdca506f2eec7b9696fe2f> /opt/local/lib/libgmp.10.dylib
0x8fe00000 - 0x8fe30c23  dyld 97.1 (???) <89a0055b0e7ea2db881b73c6e63bc774> /usr/lib/dyld
0x90003000 - 0x901a3fe3  libSystem.B.dylib ??? (???) <7dc28e19e1aac16b29cbd7c5d9ce9638> /usr/lib/libSystem.B.dylib
0x901a5000 - 0x901d0ff7  libauto.dylib ??? (???) <a64d088b2d17e013b9ee5a08d3a20d33> /usr/lib/libauto.dylib
0x90ffc000 - 0x91001ff6  libmathCommon.A.dylib ??? (???) /usr/lib/system/libmathCommon.A.dylib
0x918d1000 - 0x91a19ff3  libicucore.A.dylib ??? (???) <bdab570d90979c4f601131d442f84720> /usr/lib/libicucore.A.dylib
0x91ac7000 - 0x91becff3  com.apple.CoreFoundation 6.5.7 (476.19) <dee0f0024f3bf976cfa0a0816e8aa338> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x91ff7000 - 0x920dafff  libobjc.A.dylib ??? (???) <a1d4be2eed463c6799b6a1447fde72ba> /usr/lib/libobjc.A.dylib
0x94ad2000 - 0x94addffb  libgcc_s.1.dylib ??? (???) <ea47fd375407f162c76d14d64ba246cd> /usr/lib/libgcc_s.1.dylib
0x961e2000 - 0x96249ffb  libstdc++.6.dylib ??? (???) <a4e9b10268b3ffac26d0296499b24e8e> /usr/lib/libstdc++.6.dylib
0xfffec000 - 0xfffeffff  libobjc.A.dylib ??? (???) /usr/lib/libobjc.A.dylib
0xffff8000 - 0xffff9703  libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib

Last edited 7 years ago by kencu (Ken) (previous) (diff)

comment:17 in reply to:  16 ; Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

I'll try to contact the developers!

comment:18 in reply to:  17 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

In the last ten days since reporting the bug to the GNU Bug Tracking System nothing happened: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26854.

comment:19 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

It's the same on PPC Tiger, Mac OS X 10.4.11.

comment:20 Changed 7 years ago by kencu (Ken)

Worked on this a bit tonight. Adding the following block to the Portfile did get considerably farther through the guile-2.2.2 build, but still errors out in the end. Nonetheless, I think this is progress down the path to success:

platform darwin powerpc {
    compiler.whitelist macports-gcc-6
    configure.args-append CPP=${configure.cpp}
    configure.optflags  -O2
    configure.cflags-append -I${prefix}/lib/gcc7/gcc/ppc-apple-darwin9/7.2.0/include
}

ultimately dies with

ranlib: file: .libs/libguile-2.2.a(wctype-h.o) has no symbols
  CCLD     guile
  GEN      guile-procedures.texi
cat: stdout: Broken pipe
/bin/sh: line 1: 19360 Done(1)                 cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc
     19361 Segmentation fault      | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi > guile-procedures.texi

but I wonder if this might be improved by changing the optflags from -Os to -O2 in this latter part of the build, perhaps...

Last edited 7 years ago by kencu (Ken) (previous) (diff)

comment:21 Changed 7 years ago by kencu (Ken)

Owner: set to kencu
Resolution: fixed
Status: newclosed

In 9f39c28bb949f82989f72abb1c37c150f5dc9140/macports-ports:

guile: fix build for older systems

fixes build of guile 2.2 on systems prior to 10.7

substitues version 2.0.14 (last working) to PPC
if guile20 port is developed this can be readdressed

closes: #54124

comment:22 Changed 7 years ago by kencu (Ken)

The committed fix does not technically fix the build of guile 2.2.2 on PPC, but it does fix the issue where the guile port does not install on PPC by substituting 2.0.14. We may or may not be able to fix 2.2.2 building on PPC over time.

comment:23 Changed 4 years ago by kencu (Ken)

there may be an actual fix for guile on powerpc here <https://marc.info/?l=openbsd-ports&m=157757173428256&w=2>

comment:24 Changed 4 years ago by kencu (Ken)

Resolution: fixed
Status: closedreopened

comment:25 in reply to:  23 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

there may be an actual fix for guile on powerpc here <https://marc.info/?l=openbsd-ports&m=157757173428256&w=2>

There is one change I had to add to Portfile: usage of GCC6 which is selected as standard compiler. The reason is that from somewhere a C compiler switch -std=gnu11 is added which does not allow GCC 4.2 to successfully build any file (which could be the actual cause that /lib/cpp is chosen for C pre-processor). The first try is just a plain build of Guile @2.2.2, next I'll try will be with recent version @2.2.4.

Although I have a problem: why did I need Guile then? Autoconf? Autogen?

Last edited 4 years ago by ballapete (Peter "Pete" Dyballa) (previous) (diff)

comment:26 Changed 4 years ago by kencu (Ken)

The basic idea of the patch is to just delete the prebuilt guile binary which is apparently broken:

mv ${WRKSRC}/prebuilt/32-bit-big-endian{,-broken}

we can do that easily with a Portfile command, and see if 2.2+ builds. Apparently it takes almost 24 hours to build, though, so head's up if you try it.

comment:27 in reply to:  26 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

Right! Though I need a working environment. Port's version is different, its support files are different, and I do not know whether I can invoke à la gcc: port -V 2.4.1 -vd -sk build guile.

comment:28 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

First build ends with a new error:

cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi          > guile-procedures.texi || { rm guile-procedures.texi; false; }
cat: stdout: Broken pipe
/bin/sh: line 1: 56842 Done(1)                 cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc
     56843 Segmentation fault      | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi > guile-procedures.texi
make[3]: *** [guile-procedures.texi] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.2/libguile'

Next try is without a corrective CPP configure argument. Maybe GCC6 just accepts -std=gnu11 and so configure can determine the C pre-processor!

Last edited 4 years ago by ballapete (Peter "Pete" Dyballa) (previous) (diff)

comment:29 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

With GCC6 and GCC7 configure easily determines the C pre-processor. Unless some other setup is used without -std=gnu11 these compilers should be used. Both fail in the same place. So I can try to determine now how to implement this mv statement in Makefile.in

comment:30 Changed 4 years ago by kencu (Ken)

or just do the mv in the Portfile, which is super easy...

comment:31 in reply to:  30 ; Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu: Yes, that's the better choice. The first build with renamed ${worksrcpath}/prebuilt/32-bit-big-endian directory has started. With GCC7.

comment:32 in reply to:  31 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to ballapete: With the renamed directory of prebuilt software the build process is after the error! in ${worksrcpath}/bootstrap the target

.scm.go:
	$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0			\
	$(top_builddir)/meta/build-env				\
	guild compile --target="$(GUILE_TARGET)"                \
          $(GUILE_WARNINGS) $(GUILE_OPTIMIZATIONS)              \
	  -L "$(abs_top_srcdir)/module"                         \
	  -L "$(abs_top_srcdir)/guile-readline"			\
	  -o "$@" "$<"

is being made.

comment:33 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Build progress rushes in on the many feet of a snail!

There are 93 Scheme source files:

SOURCES = \
  ice-9/eval.scm				\
  ice-9/psyntax-pp.scm				\
  language/cps/intmap.scm			\
  language/cps/intset.scm			\
  language/cps/utils.scm			\
  ice-9/vlist.scm				\
  srfi/srfi-1.scm				\
						\
  language/tree-il.scm				\
  language/tree-il/analyze.scm			\
  language/tree-il/canonicalize.scm		\
  language/tree-il/compile-cps.scm		\
  language/tree-il/debug.scm			\
  language/tree-il/effects.scm			\
  language/tree-il/fix-letrec.scm		\
  language/tree-il/optimize.scm			\
  language/tree-il/peval.scm			\
  language/tree-il/primitives.scm		\
  language/tree-il/spec.scm			\
						\
  language/cps.scm				\
  language/cps/closure-conversion.scm		\
  language/cps/compile-bytecode.scm		\
  language/cps/constructors.scm			\
  language/cps/contification.scm		\
  language/cps/cse.scm				\
  language/cps/dce.scm				\
  language/cps/effects-analysis.scm		\
  language/cps/elide-values.scm			\
  language/cps/handle-interrupts.scm		\
  language/cps/licm.scm				\
  language/cps/peel-loops.scm			\
  language/cps/primitives.scm			\
  language/cps/prune-bailouts.scm		\
  language/cps/prune-top-level-scopes.scm	\
  language/cps/reify-primitives.scm		\
  language/cps/renumber.scm			\
  language/cps/rotate-loops.scm			\
  language/cps/optimize.scm			\
  language/cps/simplify.scm			\
  language/cps/self-references.scm		\
  language/cps/slot-allocation.scm		\
  language/cps/spec.scm				\
  language/cps/specialize-primcalls.scm		\
  language/cps/specialize-numbers.scm		\
  language/cps/split-rec.scm			\
  language/cps/type-checks.scm			\
  language/cps/type-fold.scm			\
  language/cps/types.scm			\
  language/cps/verify.scm			\
  language/cps/with-cps.scm			\
						\
  language/scheme/spec.scm			\
  language/scheme/compile-tree-il.scm		\
  language/scheme/decompile-tree-il.scm		\
						\
  language/bytecode.scm				\
  language/bytecode/spec.scm			\
						\
  language/value/spec.scm			\
						\
  system/base/pmatch.scm			\
  system/base/syntax.scm			\
  system/base/compile.scm			\
  system/base/language.scm			\
  system/base/lalr.scm				\
  system/base/message.scm			\
  system/base/target.scm			\
  system/base/types.scm				\
  system/base/ck.scm				\
						\
  ice-9/boot-9.scm				\
  ice-9/ports.scm				\
  ice-9/r5rs.scm				\
  ice-9/deprecated.scm				\
  ice-9/binary-ports.scm			\
  ice-9/command-line.scm			\
  ice-9/control.scm				\
  ice-9/format.scm				\
  ice-9/getopt-long.scm				\
  ice-9/i18n.scm				\
  ice-9/match.scm				\
  ice-9/networking.scm				\
  ice-9/posix.scm				\
  ice-9/rdelim.scm				\
  ice-9/receive.scm				\
  ice-9/regex.scm				\
  ice-9/session.scm				\
  ice-9/pretty-print.scm			\
						\
  system/vm/assembler.scm			\
  system/vm/debug.scm				\
  system/vm/disassembler.scm			\
  system/vm/dwarf.scm				\
  system/vm/elf.scm				\
  system/vm/frame.scm				\
  system/vm/linker.scm				\
  system/vm/loader.scm				\
  system/vm/program.scm				\
  system/vm/vm.scm				\
  system/foreign.scm

After twelve hours two of them are converted to GO (Guile Output?) files, a third one (language/cps/intmap.scm) is in the works:

-rw-r--r-- 1 macports admin 104389  3. Sep 02:11 ice-9/eval.go        (≈4h)
-rw-r--r-- 1 macports admin 679597  3. Sep 10:38 ice-9/psyntax-pp.go  (≈8h)

(Arithmetically the build will have finished around the ides of September. At reduced, minimal setting, CPU speed to keep the PowerBook G4 real silent.)

comment:34 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

The prebuilt GO files are:

-rw-r--r--  2 macports  admin   87053 21 Apr  2017 prebuilt/32-bit-big-endian-broken/ice-9/eval.go
-rw-r--r--  2 macports  admin  384293 21 Apr  2017 prebuilt/32-bit-big-endian-broken/ice-9/psyntax-pp.go

(notice that they exist in two hard links), my own builds are:

-rw-r--r--  1 macports  admin  104389  3 Sep 02:11 bootstrap/ice-9/eval.go
-rw-r--r--  1 macports  admin  679597  3 Sep 10:38 bootstrap/ice-9/psyntax-pp.go

The file commands reveals that they all are of the same kind: ELF 32-bit MSB shared object, no machine, version 1 (embedded), not stripped. A closer look onto the hard linked prebuilt files receals:

 76892014     88 -rw-r--r--   2 macports admin       87053 Apr 21  2017 prebuilt/32-bit-big-endian-broken/ice-9/eval.go
 76892024    376 -rw-r--r--   2 macports admin      384293 Apr 21  2017 prebuilt/32-bit-big-endian-broken/ice-9/psyntax-pp.go
 76892014     88 -rw-r--r--   2 macports admin       87053 Apr 21  2017 prebuilt/mips-unknown-linux-gnu/ice-9/eval.go
 76892024    376 -rw-r--r--   2 macports admin      384293 Apr 21  2017 prebuilt/mips-unknown-linux-gnu/ice-9/psyntax-pp.go

Could this be the answer while they are broken? Built on (presumingly 32 bit) MIPS hardware?

Version 0, edited 4 years ago by ballapete (Peter "Pete" Dyballa) (next)

comment:35 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Towards the end of September I should be able to create my own variant of the source files archive and try to rebuild Guile from this. The difference to the original TAR would be that the prebuilt GO files would be substituted with my own versions. If then the build would finish we would have an indication that the MIPS prebuilt files are not adequate for PowerPC.

And we could try to contribute my GO files for distribution!

comment:36 Changed 4 years ago by kencu (Ken)

makes you wonder how on earth it could be so slow...

I wonder if the older working version for PPC that we have might have usable bootstrap bins...

comment:37 Changed 4 years ago by kencu (Ken)

For interest, I thought I would try the latest version of guile, 2.9.1, and that builds through on PowerPC as well. I deleted the ${worksrcpath}/prebuilt/32-bit-big-endian directory before I built it.

Running the test suite now make check.

But it does look like, one way or another, we'll be able to get newer versions of guile going again on PowerPC.

comment:38 Changed 4 years ago by kencu (Ken)

The results of the guile 2.9.1 test suite on 10.5 Leopard PowerPC look quite encouraging:

Totals for this test run:
passes:                 41258
failures:               3
unexpected passes:      0
expected failures:      10
unresolved test cases:  61
untested test cases:    1
unsupported test cases: 1
errors:                 4

not quite perfect, but very very close. None of these gcc test suites ever seems to be 100% perfect, in my experience.

I wonder if the main guile port is ripe to be updated to 2.9.1 as well, and what, if anything, would be broken by so doing...

comment:39 Changed 4 years ago by kencu (Ken)

$ port -v installed guile
The following ports are currently installed:
  guile @2.0.14_2 platform='darwin 9' archs='ppc' date='2020-06-26T23:04:25-0700'
  guile @2.9.1_0 (active) platform='darwin 9' archs='ppc' date='2020-09-03T18:43:56-0700'

comment:40 Changed 4 years ago by kencu (Ken)

well for one, autogen, which is what needs guile, won't build against guile 2.9.1.

So yeah, there's that :>

comment:41 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Guile @2.2.2 finally built this morning. On the weekend I'll try to prepare a TAR file with my GO files in the prebuilt branch to see whether this builds flawlessly. Meanwhile make check is running.

comment:42 in reply to:  38 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

With version 2.2.2 I get here:

Totals for this test run:
passes:                 41137
failures:               0
unexpected passes:      0
expected failures:      10
unresolved test cases:  66
untested test cases:    1
unsupported test cases: 1
errors:                 0

comment:43 in reply to:  38 ; Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

I wonder if the main guile port is ripe to be updated to 2.9.1 as well, and what, if anything, would be broken by so doing...

No, it's not! https://www.gnu.org/software/guile/download/ states: "The latest release of Guile's legacy 2.2.x series is 2.2.7." Version 2.9.1 could have been some experimental release. The official download site https://ftp.gnu.org/gnu/guile/ jumps from version 2.2.7 to version 3.0.0. I am going to try version 2.2.7 from March directly, no intermediate version 2.2.4 from July 2018.

comment:44 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

With the "patched" version 2.2.2 i had:

passes:                 41124
failures:               0
unexpected passes:      0
expected failures:      10
unresolved test cases:  66
untested test cases:    1
unsupported test cases: 1
errors:                 0

I had to remove one test: 00-repl-server.test. This time the test would not succeed, something was waiting endlessly.

Now I am going to check version 2.2.7!

comment:45 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

I have to add the success of make check:

=======================================================
   GNU AutoGen 5.18.16: autoopts/test/test-suite.log
=======================================================

# TOTAL: 24
# PASS:  3
# SKIP:  0
# XFAIL: 0
# FAIL:  21
# XPASS: 0
# ERROR: 0

The reason for tha many failures is that no directory /opt/local/include/autoopts exists. For a second test I built GnuTLS +guile:

============================================
   GnuTLS 3.6.14: gl/tests/test-suite.log
============================================

# TOTAL: 126
# PASS:  124
# SKIP:  0
# XFAIL: 0
# FAIL:  2
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: test-float
================

test-float.c:324: assertion 'x + x == x' failed
FAIL test-float (exit status: 134)

FAIL: test-fopen-gnu
====================

test-fopen-gnu.c:64: assertion '(flags & FD_CLOEXEC) != 0' failed
FAIL test-fopen-gnu (exit status: 134)

Also not really a Guile 2.2.2 problem.

comment:46 Changed 4 years ago by kencu (Ken)

so -- what do we need to do to fix the existing 2.2.2 port? Copy the contents of your fixed up /opt/local/lib/guile/2.2/ccache/ into ${worksrcpath}/prebuilt/32-bit-big-endian?

We could probably find a way to do that. We'd need a tarball and then download them as a secondary distfile with the PowerPC port, and replace the current contents of prebuilt/32-bit-big-endian with the new ones.

I presume they are all PPC generic binary files -- not for some specific processor like 970 or 7450? I actually have little idea just what format those GO files are.

If not that -- we can just delete prebuilt/32-bit-big-endian and pop a ui_msg telling people to go to bed and come back after a long while :>

Last edited 4 years ago by kencu (Ken) (previous) (diff)

comment:47 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

In guile @2.2.7 we again have the same error with inapproriate pre-built GO files:

./guile-snarf-docs -o regex-posix.doc regex-posix.c -- -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/opt/local/lib/libffi-3.2.1/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7 -I/opt/local/include -pipe -Os -arch ppc
cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi          > guile-procedures.texi || { rm guile-procedures.texi; false; }
cat: stdout: Broken pipe
/bin/sh: line 1: 35599 Done(1)                 cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc
     35600 Segmentation fault      | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi > guile-procedures.texi
make[3]: *** [guile-procedures.texi] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/libguile'
make[2]: *** [all] Error 2

comment:48 in reply to:  47 Changed 4 years ago by kencu (Ken)

Replying to ballapete:

In guile @2.2.7 we again have the same error with inapproriate pre-built GO files:

to be expected, I guess -- however they were broken in 2.2.2, they are not fixed in 2.2.7...

comment:49 in reply to:  46 ; Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

so -- what do we need to do to fix the existing 2.2.2 port? Copy the contents of your fixed up /opt/local/lib/guile/2.2/ccache/ into ${worksrcpath}/prebuilt/32-bit-big-endian?

No, I don't think so. These are the files for daily use. If the pre-built files do not exist then local versions in ${worksrcpath}/bootstrap are being built:

 76905079     68 -rw-r--r--   1 macports admin       68165 Sep  4 02:57 ./ice-9/binary-ports.go
 76905064    644 -rw-r--r--   1 macports admin      656845 Sep  4 02:51 ./ice-9/boot-9.go
 76905081     84 -rw-r--r--   1 macports admin       85629 Sep  4 02:59 ./ice-9/command-line.go
 76905083     76 -rw-r--r--   1 macports admin       76741 Sep  4 03:00 ./ice-9/control.go
 76905075    172 -rw-r--r--   1 macports admin      172517 Sep  4 02:56 ./ice-9/deprecated.go
 76902476    104 -rw-r--r--   1 macports admin      104389 Sep  3 02:11 ./ice-9/eval.go
 76905084    236 -rw-r--r--   1 macports admin      238549 Sep  4 03:05 ./ice-9/format.go
 76905087    184 -rw-r--r--   1 macports admin      186101 Sep  4 03:07 ./ice-9/getopt-long.go
 76905088     96 -rw-r--r--   1 macports admin       94869 Sep  4 03:09 ./ice-9/i18n.go
 76905090    280 -rw-r--r--   1 macports admin      284613 Sep  4 03:11 ./ice-9/match.go
 76905091     76 -rw-r--r--   1 macports admin       76211 Sep  4 03:13 ./ice-9/networking.go
 76905070    100 -rw-r--r--   1 macports admin       99669 Sep  4 02:53 ./ice-9/ports.go
 76905092     76 -rw-r--r--   1 macports admin       74923 Sep  4 03:14 ./ice-9/posix.go
 76905148     92 -rw-r--r--   1 macports admin       92869 Sep  4 03:25 ./ice-9/pretty-print.go
 76902780    664 -rw-r--r--   1 macports admin      679597 Sep  3 10:38 ./ice-9/psyntax-pp.go
 76905074     68 -rw-r--r--   1 macports admin       68405 Sep  4 02:54 ./ice-9/r5rs.go
 76905094     76 -rw-r--r--   1 macports admin       75837 Sep  4 03:15 ./ice-9/rdelim.go
 76905105     68 -rw-r--r--   1 macports admin       68869 Sep  4 03:17 ./ice-9/receive.go
 76905145     76 -rw-r--r--   1 macports admin       75349 Sep  4 03:19 ./ice-9/regex.go
 76905147     92 -rw-r--r--   1 macports admin       90669 Sep  4 03:22 ./ice-9/session.go
 76904052    292 -rw-r--r--   1 macports admin      297141 Sep  3 14:27 ./ice-9/vlist.go
 76904995     68 -rw-r--r--   1 macports admin       68941 Sep  4 02:02 ./language/bytecode/spec.go
 76904992     72 -rw-r--r--   1 macports admin       72533 Sep  4 01:58 ./language/bytecode.go
 76904478    208 -rw-r--r--   1 macports admin      211469 Sep  3 20:29 ./language/cps/closure-conversion.go
 76904491    236 -rw-r--r--   1 macports admin      238357 Sep  3 20:54 ./language/cps/compile-bytecode.go
 76904543     80 -rw-r--r--   1 macports admin       79005 Sep  3 21:05 ./language/cps/constructors.go
 76904550     96 -rw-r--r--   1 macports admin       97573 Sep  3 21:19 ./language/cps/contification.go
 76904557    112 -rw-r--r--   1 macports admin      112669 Sep  3 21:34 ./language/cps/cse.go
 76904601     96 -rw-r--r--   1 macports admin       96021 Sep  3 21:46 ./language/cps/dce.go
 76904611    296 -rw-r--r--   1 macports admin      302493 Sep  3 22:03 ./language/cps/effects-analysis.go
 76904628     76 -rw-r--r--   1 macports admin       74429 Sep  3 22:13 ./language/cps/elide-values.go
 76904638     72 -rw-r--r--   1 macports admin       72573 Sep  3 22:22 ./language/cps/handle-interrupts.go
 76903350    312 -rw-r--r--   1 macports admin      316101 Sep  3 12:20 ./language/cps/intmap.go
 76903765    320 -rw-r--r--   1 macports admin      324965 Sep  3 13:33 ./language/cps/intset.go
 76904643     92 -rw-r--r--   1 macports admin       92581 Sep  3 22:33 ./language/cps/licm.go
 76904772     76 -rw-r--r--   1 macports admin       76149 Sep  3 23:52 ./language/cps/optimize.go
 76904687     88 -rw-r--r--   1 macports admin       87629 Sep  3 22:44 ./language/cps/peel-loops.go
 76904693     76 -rw-r--r--   1 macports admin       73853 Sep  3 22:53 ./language/cps/primitives.go
 76904702     76 -rw-r--r--   1 macports admin       74037 Sep  3 23:03 ./language/cps/prune-bailouts.go
 76904709     72 -rw-r--r--   1 macports admin       70565 Sep  3 23:12 ./language/cps/prune-top-level-scopes.go
 76904715     96 -rw-r--r--   1 macports admin       94405 Sep  3 23:23 ./language/cps/reify-primitives.go
 76904723     88 -rw-r--r--   1 macports admin       88461 Sep  3 23:34 ./language/cps/renumber.go
 76904766     88 -rw-r--r--   1 macports admin       87013 Sep  3 23:43 ./language/cps/rotate-loops.go
 76904792     76 -rw-r--r--   1 macports admin       75493 Sep  4 00:10 ./language/cps/self-references.go
 76904780     92 -rw-r--r--   1 macports admin       93645 Sep  4 00:02 ./language/cps/simplify.go
 76904804    316 -rw-r--r--   1 macports admin      321965 Sep  4 00:26 ./language/cps/slot-allocation.go
 76904813     72 -rw-r--r--   1 macports admin       69965 Sep  4 00:33 ./language/cps/spec.go
 76904861    196 -rw-r--r--   1 macports admin      199061 Sep  4 00:51 ./language/cps/specialize-numbers.go
 76904855     84 -rw-r--r--   1 macports admin       83189 Sep  4 00:41 ./language/cps/specialize-primcalls.go
 76904869     84 -rw-r--r--   1 macports admin       82101 Sep  4 00:58 ./language/cps/split-rec.go
 76904880     72 -rw-r--r--   1 macports admin       70477 Sep  4 01:04 ./language/cps/type-checks.go
 76904887    112 -rw-r--r--   1 macports admin      112877 Sep  4 01:12 ./language/cps/type-fold.go
 76904894    912 -rw-r--r--   1 macports admin      933573 Sep  4 01:31 ./language/cps/types.go
 76904035    108 -rw-r--r--   1 macports admin      108061 Sep  3 13:58 ./language/cps/utils.go
 76904902     96 -rw-r--r--   1 macports admin       96317 Sep  4 01:36 ./language/cps/verify.go
 76904904     76 -rw-r--r--   1 macports admin       75445 Sep  4 01:40 ./language/cps/with-cps.go
 76904462    772 -rw-r--r--   1 macports admin      789837 Sep  3 20:05 ./language/cps.go
 76904982     68 -rw-r--r--   1 macports admin       68029 Sep  4 01:48 ./language/scheme/compile-tree-il.go
 76904984    200 -rw-r--r--   1 macports admin      204485 Sep  4 01:55 ./language/scheme/decompile-tree-il.go
 76904980     68 -rw-r--r--   1 macports admin       69517 Sep  4 01:44 ./language/scheme/spec.go
 76904136    484 -rw-r--r--   1 macports admin      491541 Sep  3 16:01 ./language/tree-il/analyze.go
 76904196     72 -rw-r--r--   1 macports admin       72021 Sep  3 16:18 ./language/tree-il/canonicalize.go
 76904204    248 -rw-r--r--   1 macports admin      252029 Sep  3 16:58 ./language/tree-il/compile-cps.go
 76904279     80 -rw-r--r--   1 macports admin       81245 Sep  3 17:16 ./language/tree-il/debug.go
 76904288    204 -rw-r--r--   1 macports admin      208877 Sep  3 17:40 ./language/tree-il/effects.go
 76904333     84 -rw-r--r--   1 macports admin       84565 Sep  3 17:57 ./language/tree-il/fix-letrec.go
 76904346     68 -rw-r--r--   1 macports admin       68853 Sep  3 18:13 ./language/tree-il/optimize.go
 76904355    632 -rw-r--r--   1 macports admin      643269 Sep  3 18:58 ./language/tree-il/peval.go
 76904409    192 -rw-r--r--   1 macports admin      193469 Sep  3 19:19 ./language/tree-il/primitives.go
 76904418     68 -rw-r--r--   1 macports admin       69493 Sep  3 19:32 ./language/tree-il/spec.go
 76904120    216 -rw-r--r--   1 macports admin      220085 Sep  3 15:25 ./language/tree-il.go
 76904997     68 -rw-r--r--   1 macports admin       67907 Sep  4 02:05 ./language/value/spec.go
 76904104    112 -rw-r--r--   1 macports admin      111325 Sep  3 14:53 ./srfi/srfi-1.go
 76905063     72 -rw-r--r--   1 macports admin       71269 Sep  4 02:41 ./system/base/ck.go
 76905007     80 -rw-r--r--   1 macports admin       80701 Sep  4 02:15 ./system/base/compile.go
 76905049    324 -rw-r--r--   1 macports admin      331133 Sep  4 02:25 ./system/base/lalr.go
 76905009     76 -rw-r--r--   1 macports admin       75333 Sep  4 02:18 ./system/base/language.go
 76905054    100 -rw-r--r--   1 macports admin      100973 Sep  4 02:29 ./system/base/message.go
 76905002     76 -rw-r--r--   1 macports admin       75973 Sep  4 02:08 ./system/base/pmatch.go
 76905004     88 -rw-r--r--   1 macports admin       87525 Sep  4 02:12 ./system/base/syntax.go
 76905056     76 -rw-r--r--   1 macports admin       74669 Sep  4 02:32 ./system/base/target.go
 76905058    296 -rw-r--r--   1 macports admin      299701 Sep  4 02:38 ./system/base/types.go
 76905186     80 -rw-r--r--   1 macports admin       78141 Sep  4 04:11 ./system/foreign.go
 76905151   1292 -rw-r--r--   1 macports admin     1320101 Sep  4 03:46 ./system/vm/assembler.go
 76905162    388 -rw-r--r--   1 macports admin      393989 Sep  4 03:49 ./system/vm/debug.go
 76905165    448 -rw-r--r--   1 macports admin      455325 Sep  4 03:54 ./system/vm/disassembler.go
 76905167   1120 -rw-r--r--   1 macports admin     1143949 Sep  4 04:02 ./system/vm/dwarf.go
 76905174    692 -rw-r--r--   1 macports admin      706469 Sep  4 04:07 ./system/vm/elf.go
 76905180    184 -rw-r--r--   1 macports admin      185253 Sep  4 04:08 ./system/vm/frame.go
 76905182    308 -rw-r--r--   1 macports admin      311669 Sep  4 04:10 ./system/vm/linker.go
 76905183     68 -rw-r--r--   1 macports admin       67677 Sep  4 04:10 ./system/vm/loader.go
 76905184     88 -rw-r--r--   1 macports admin       88229 Sep  4 04:11 ./system/vm/program.go
 76905185     68 -rw-r--r--   1 macports admin       67901 Sep  4 04:11 ./system/vm/vm.go

We could probably find a way to do that. We'd need a tarball and then download them as a secondary distfile with the PowerPC port, and replace the current contents of prebuilt/32-bit-big-endian with the new ones.

Which I can provide. Presumingly tar.gz is preferred over tar.xz? I can put the archive file onto We Transfer and you'll have one week to download it…

I presume they are all PPC generic binary files -- not for some specific processor like 970 or 7450? I actually have little idea just what format those GO files are.

As I already mentioned: ELF 32-bit MSB shared object, no machine, version 1 (embedded), not stripped

The build of guile @2.2.7 has started – with my pre-built GO files.

comment:50 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

I have this in my version Guile's Portfile:

 26 platform darwin powerpc {
 27     version             2.2.7
 28     revision            0
 29     checksums           rmd160  309ee96ba266668fa90aa05beb34470fa4fa7296 \
 30                         sha256  dd4837f8c2465a98e8d12cf25f88cb6330195670516cd60baf06c6b5142a5c1c \
 31                         size    22108594
 32     compiler.c_standard 1989
 33  
 34     post-patch {
 35         move ${worksrcpath}/prebuilt/32-bit-big-endian ${worksrcpath}/prebuilt/32-bit-big-endian-broken
 36     }
 37 }

I think the compiler.c_standard 1989 statement should be removed in order to allow configure to determine the C pre-processor, which does not seem to work with standard GCC 4.2. The recent versions of GCC 6 or GCC 7 are certainly compiler.c_standard 2011.

comment:51 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

As with guile @2.2.2 I see with guile @2.2.7 again that files in ${worksrcpath}/bootstrap are being built… Which takes so many hours. Is there something wrong in the build process? I should re-check with guile @2.0.14 afterwards!

comment:52 in reply to:  46 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

I presume they are all PPC generic binary files -- not for some specific processor like 970 or 7450? I actually have little idea just what format those GO files are.

The binary GO output files seem to follow this architecture: guild compile --target="powerpc-apple-darwin9". Clearly 32 bit, but – in the prebuilt directory is no 64-bit-big-endian sub-directory to support modern 64 bit PowerPC hardware, which simply is not necessary because the PPC 970 can execute the 32 bit big-endian code for PPC 7400 or PPC 7450.

comment:53 Changed 4 years ago by kencu (Ken)

when we change the portfile, we'll have it match the intel version again. If we upgrade to 2.2.7, we'll do it across the board for all archs.

I'm just first trying to see if we can replace the 32bit PPC prebuilt files with ones that work, to save everyone many hours compiling this.

Last edited 4 years ago by kencu (Ken) (previous) (diff)

comment:54 Changed 4 years ago by kencu (Ken)

Looks like someone has been listening in on our conversation <https://github.com/macports/macports-ports/commit/2c0fac054b44f024dd749859fc0fb824f12f0d0e>.

So now we across-the-board go for 2.2.7.

comment:55 Changed 4 years ago by kencu (Ken)

I'm thinking this block:

platform darwin powerpc {
    post-extract {
        # the prebuilt guile binaries are broken for 32bit darwn PPC
        move ${worksrcpath}/prebuilt/32-bit-big-endian ${worksrcpath}/prebuilt/32-bit-big-endian-disabled

        # this build will take a long time
        ui_msg "This build will take time, as guile has to do a full bootstrap on PPC."
    }
}

unless / until we can come up with some new prebuilts that work on PowerPC

comment:56 in reply to:  49 Changed 4 years ago by kencu (Ken)

Replying to ballapete:

As I already mentioned: ELF 32-bit MSB shared object, no machine, version 1 (embedded), not stripped

Well that's the funny thing, isn't it, as darwin isn't supposed to be able to use any ELF files (darwin uses macho files)... but I think we can see that guile is a bit strange...

comment:57 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Using a patched version of the old Portfile guile @2.2.7 built and make check too, with one error, the web-server.test:

Running web-response.test
Running web-server.test
ERROR: web-server.test: GET / - arguments: ((system-error "connect" "~A" ("Connection refused") (61)))
ERROR: web-server.test: GET /latin1 - arguments: ((system-error "connect" "~A" ("Connection refused") (61)))
ERROR: web-server.test: GET /user-agent - arguments: ((system-error "connect" "~A" ("Connection refused") (61)))
ERROR: web-server.test: GET /does-not-exist - arguments: ((system-error "connect" "~A" ("Connection refused") (61)))
ERROR: web-server.test: GET with keep-alive - arguments: ((system-error "connect" "~A" ("Connection refused") (61)))
ERROR: web-server.test: POST / - arguments: ((system-error "connect" "~A" ("Connection refused") (61)))
Running web-uri.test
UNRESOLVED: web-uri.test: build-uri: http://ill\xe9gal.com
UNRESOLVED: web-uri.test: string->uri: http://www.example.com (sv_SE)

Totals for this test run:
passes:                 41596
failures:               2
unexpected passes:      0
expected failures:      10
unresolved test cases:  76
untested test cases:    1
unsupported test cases: 1
errors:                 8

FAIL: check-guile
==================================
1 of 1 test failed
Please report to bug-guile@gnu.org
==================================

comment:58 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

guile @2.0.14 has no pre-built GO files nor does it produce GO files in the (not yet existing) bootstrap folder. That's the secret reason why it builds successfully on PowerPC…

comment:59 Changed 4 years ago by kencu (Ken)

have you stumbled across a script that makes the prebuilt directories? Or is it all by hand?

comment:60 Changed 4 years ago by kencu (Ken)

Resolution: fixed
Status: reopenedclosed

In 0dbaf5089dbd44247fec8552d753153e1e999767/macports-ports (master):

guile: bump to 2.2.7 on PowerPC

not yet sure about 64bit PowerPC - may need the same treatment

closes: #54124

comment:61 Changed 4 years ago by kencu (Ken)

Autogen will fail rev-upgrade for anyone who has guile installed, and autogen, and then guile updates to the 2.2 series. But I'm not going to revbump autogen just for the three people who have this scenario, and there is no buildbot for PowerPC at present anyway.

comment:62 in reply to:  59 ; Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

have you stumbled across a script that makes the prebuilt directories? Or is it all by hand?

It was done manually: gtar -cf - <the subdirs with built GO files in "bootstrap" directory> | ( pushd <"prebuilt/32-bit-big-endian" directory in outpacked new Guile version> ; gtar xf - ) followed by gtar zcf /opt/local/var/macports/distfiles/guile/guile-<VERSION>.tar.gz ./guile-<VERSION>. The original faulty GO files were first unlinked by gtar and then extracted from the pipe. The original TAR file was renamed so that a completely new TAR file with the original VERSION could be created. In Portfile I had to edit checksums and size to describe the new sources archive. The new TAR archive file shows my bootstrapped GO files in prebuilt/32-bit-big-endian.

I might be seeing the cause for neglecting the new prebuilt files:

date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... 
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

It's these statements in libguile/Makefile (around line # 3888):

	@BUILD_DATE="$${SOURCE_DATE_EPOCH:-`date '+%s'`}" ; \
	 echo '	{ "buildstamp",    "'`date -u +'%Y-%m-%d %T' -d @$$BUILD_DATE`'" }, \' >> libpath.tmp
	@echo '}' >> libpath.tmp
	$(AM_V_GEN)mv libpath.tmp libpath.h

date '+%s' works as expected on every system, date -u +'%Y-%m-%d %T' -d @$$BUILD_DATE fails on older systems (it actually converts the time stamp's time format from EPOCH to YYYY-MM-DD HH:MM.SS). It will probably work with gdate. port provides `which gdate` gives /opt/local/bin/gdate is provided by: coreutils, so coreutils would become a build dependancy.

More likely is that I had in Portfile:

    post-patch {
        move ${worksrcpath}/prebuilt/32-bit-big-endian ${worksrcpath}/prebuilt/32-bit-big-endian-broken
    }   

This explains quite a lot…

I'm going to rebuild Guile @2.2.7 without that stement!

Last edited 4 years ago by ballapete (Peter "Pete" Dyballa) (previous) (diff)

comment:63 Changed 4 years ago by kencu (Ken)

I started making a new set of prebuilts for PPC 10.5, and there were just too many to bother with so I scrubbed the project. Besides, are the 10.4 PPC ones different or the same? If we ever do use them, should they be build on 10.4? Does it make any difference. There seems to be no processor specific code in them ("cpu_subtype_all", etc).

Anyway, it works fine as I pushed it now, other than requiring a bit of patience to build them. If we can get a reliable set of prebuilts to use, I'll update the port with them later.

comment:64 in reply to:  63 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

I started making a new set of prebuilts for PPC 10.5, and there were just too many to bother with so I scrubbed the project. Besides, are the 10.4 PPC ones different or the same?

I'll have to find out! I have only one PowerBook G4 and so I'm either in Tiger or in Leopard. After solving the mysteries of building Guile in faster Leopard I'll boot Tiger and can start into a faster cycle.

comment:65 in reply to:  62 ; Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to ballapete:

Replying to kencu:

This explains quite a lot…

I'm going to rebuild Guile @2.2.7 without that stement!

Having the pre-built files around still produces:

./guile-snarf-docs -o regex-posix.doc regex-posix.c -- -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/opt/local/lib/libffi-3.2.1/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7 -I/opt/local/include -pipe -Os -arch ppc
cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi          > guile-procedures.texi || { rm guile-procedures.texi; false; }
Cannot exit gracefully when init is in progress; aborting.
cat: stdout: Broken pipe
/bin/sh: line 1: 47228 Done(1)                 cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc
     47229 Abort trap              | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi > guile-procedures.texi

Has Guile a bug in its ELF interpreter? Or is it just the faulty date?

Next try!

comment:66 in reply to:  65 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to ballapete:

Has Guile a bug in its ELF interpreter? Or is it just the faulty date?

It's not the faulty! Guild still crashes as so many times before. Next try is to let the build process create the GO files in bootstrap. Could be they are invalid because of the empty build time stamp. Then I'll 'patch' the TAR archive to contain the new bootstrapped GO files in prebuilt/32-bit-big-endian. And the I'll check how the build with these new GO files will work. With the recent legacy version of Guile I'll report the errors and see how good the Guile support is. (When it's professional it should it should reject working on a problem with an outdated hard- and software.)

comment:67 Changed 4 years ago by kencu (Ken)

The 32bit PowerPC bootstrap files are felt by the openbsd folks to be just "bad". They figure they were made with a little-endian machine trying to cross-compile, but there were errors.

All these files have been remade in the "guile" port -- I'm mostly just looking for some script to replace them as I'm just too lazy to copy the new fixed ones in one-by-one by hand ;>

Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: Makefile.in.diff added

Patch to correct date in libguile/Makefile.in

comment:68 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Why are the pre-built GO files rebuilt?

The toplevel Makefile, in ${worksrcpath}, has around line # 1700:

SUBDIRS = \
	lib					\
	meta					\
	libguile				\
	bootstrap				\
	module					\
	guile-readline				\
	examples				\
	emacs					\
	test-suite				\
	benchmark-suite				\
	gc-benchmarks				\
	am					\
	doc

So there is a strict order in which Guile is being built. In target $(am__recursive_targets): we find this recipe around line # 1870:

	for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \

Make echos what it will perform in which sub-directory and then does perform this, i.e. a make all. So we enter ${worksrcpath}/bootstrap. The Makefile here has:

all: all-am

=>

all-am: Makefile $(DATA)

where DATA is defined as:

DATA = $(nobase_noinst_DATA)

=>

nobase_noinst_DATA = $(GOBJECTS)

which are

GOBJECTS = $(SOURCES:%.scm=%.go)

The SOURCES are 93 SCM files. More important is the compilation rule from SCM to GO: %.scm=%.go which is:

.scm.go:
	$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0			\
	$(top_builddir)/meta/build-env				\
	guild compile --target="$(GUILE_TARGET)"                \
          $(GUILE_WARNINGS) $(GUILE_OPTIMIZATIONS)              \
	  -L "$(abs_top_srcdir)/module"                         \
	  -L "$(abs_top_srcdir)/guile-readline"			\
	  -o "$@" "$<"

and appears as, just one example for the first source SCM file:

GUILE_AUTO_COMPILE=0			\
	../meta/build-env				\
	guild compile --target="powerpc-apple-darwin9"                \
           -O1              \
	  -L "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/module"                         \
	  -L "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/guile-readline"			\
	  -o "ice-9/eval.go" "../module/ice-9/eval.scm"
wrote `ice-9/eval.go'

../meta/build-env sets for example ${worksrcpath}/libguile as leading element in $PATH. This directory contains shell scripts guild and guile.

For me these 93 bootstrap GO file are built unconditionally. (I am going to check what is happening on x86_64 hardware.)

Last edited 4 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:69 in reply to:  68 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Replying to ballapete:

Why are the pre-built GO files rebuilt?

For me these 93 bootstrap GO file are built unconditionally. (I am going to check what is happening on x86_64 hardware.)

On Catalina same behaviour. Luckily they don't make guild crash when building guile-procedures.texi! IMO these pre-built GO files are disturbing and filling up disks and internet…

comment:70 in reply to:  68 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ballapete:

Patch to correct date in libguile/Makefile.in

This patch (and the build dependency on coreutils) is needed on all versions of macOS that would run this code. macOS (BSD) date doesn't support the options being used there.

comment:71 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Interestingly on PPC 7447A Tiger, Mac OS X 10.4.11, it works to build the TEXI file in the presence of pre-built GO files, those that were compiled before in the bootstrap directory:

./guile-snarf-docs -o regex-posix.doc regex-posix.c -- -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib  -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7 -I/opt/local/include -pipe -Os -arch ppc
cat alist.doc array-handle.doc array-map.doc arrays.doc async.doc atomic.doc backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc fdes-finalizers.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc symbols.doc syntax.doc threads.doc throw.doc trees.doc unicode.doc uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE_AUTO_COMPILE=0 ../meta/build-env guild snarf-check-and-output-texi          > guile-procedures.texi || { rm guile-procedures.texi; false; }
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/libguile'
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/libguile'
Making all in bootstrap
make[2]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/bootstrap'
GUILE_AUTO_COMPILE=0			\
../meta/build-env				\
guild compile --target="powerpc-apple-darwin8"                \
           -O1              \
  -L "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/module"                         \
  -L "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/guile-readline"			\
  -o "ice-9/eval.go" "../module/ice-9/eval.scm"
wrote `ice-9/eval.go'

And again unconditionally all the pre-built GO files are being built again…

  /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/prebuilt:
  insgesamt 128
  drwxr-xr-x 11 macports admin   374 16. Sep 16:44 .
  drwxr-xr-x 56 macports admin  1904 16. Sep 16:44 ..
  drwxr-xr-x  8 macports admin   272  7. Mär 2020  32-bit-big-endian
  drwxr-xr-x  8 macports admin   272  7. Mär 2020  32-bit-little-endian
  drwxr-xr-x  8 macports admin   272  7. Mär 2020  64-bit-little-endian
  -rw-r--r--  1 macports admin 54711 16. Sep 16:44 Makefile
  /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/prebuilt/32-bit-big-endian:
  insgesamt 72
  drwxr-xr-x  8 macports admin   272  7. Mär 2020  .
  drwxr-xr-x 11 macports admin   374 16. Sep 16:44 ..
  -rw-r--r--  2 macports admin  1082 13. Mai 2016  Makefile.am
  -rw-r--r--  2 macports admin 67032 12. Feb 2020  Makefile.in
  drwxr-xr-x 23 macports admin   782 16. Sep 13:49 ice-9
  drwxr-xr-x 10 macports admin   340 16. Sep 13:49 language
  drwxr-xr-x  3 macports admin   102 16. Sep 13:49 srfi
  drwxr-xr-x  5 macports admin   170 16. Sep 13:49 system

comment:72 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

This is very unusual: The build on Tiger with working pre-built GO files took only one fifth the time as with the renamed 32-bit-big-endian directory and as on Leopard with a similarly prepared 32-bit-big-endian directory with my own GO files. So the pre-built GO files do work here! These files have on Tiger and Leopard at least the same size and they also are the same file type.

I'll retry to build on Leopard, after upgrading all outdated ports.

comment:73 Changed 4 years ago by kencu (Ken)

FYI, the included prebuilt PPC go files did not work on Tiger or Leopard for me.

If you ever put together another set you would like me to try, feel free to send me the link! If they work, they'd save everyone a lot of time building this (although some people are using my prebuilt repository of PPC files anyway, so they don't have to build them).

comment:74 in reply to:  73 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

Hello Ken!

https://we.tl/t-WghP11aIyg has the bootstrapped GO files from Tiger plus the patched Guile 2.2.7 tape archive – seven days only.

comment:75 Changed 4 years ago by kencu (Ken)

Got it, thanks! Will look it over.

comment:76 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

The build on PPC Leopard, Mac OS X 10.5.8 is finished. The TEXI file was built although the pre-built GO files were accessible, just as in Tiger. It took a bit more than four hours! Is new libffi the culprit?

I am going to continue rev-upgrade – it just happened that port wanted to upgrade Guile and so I decided to perform this by myself. (The test with the offset of a long failed.) After this I'll try to rebuild Guile again.

comment:77 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

I already built Guile 2.2.7 with the Tiger per-built GO files, some hours ago it worked to build Guile with the GO files built on Leopard. Again the bootstrap step went fast, a few hours instead of a few days. Next try with the previously in a day-long process bootstrapped GO files failed early when the TEXI files was to be built. Now a build with the original (per-built) files has started – which failed, just as before, when trying to build the TEXI file. So it should be clear now that the new version of libffi has no effect, the pre-built 32-bit big-endian GO files are inadequate for PowerPC and Mac OS X.

The new try is to bootstrap on Leopard and then use these GO files instead of the broken pre-built GO files in order to sort out whether Leopard simply cannot build valid pre-built GO files, with old and new version of libffi.

comment:78 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

On Leopard it worked, obviously with new libff, to build Guile with Leopard pre-built GO files within 4 h. No crash when creating the TEXI file.

My procedure was:

  • outpack original guile-2.2.7.tar.gz «somewhere»
  • pushd $work/guile-2.2.7/bootstrap/
  • gtar zcf ~/bootstrap-Leo-GO-32-bit-big-endian.tar.gz ice-9 language srfi system
  • pushd «somewhere»/guile-2.2.7/prebuilt/32-bit-big-endian
  • gtar zxf ~/bootstrap-Leo-GO-32-bit-big-endian.tar.gz
  • pushd ../../..
  • gtar zcf /opt/local/var/macports/distfiles/guile/guile-2.2.7-Leo.tar.gz guile-2.2.7
  • rm /opt/local/var/macports/distfiles/guile/guile-2.2.7.tar.gz ; ln -s ./guile-2.2.7-Leo.tar.gz /opt/local/var/macports/distfiles/guile/guile-2.2.7.tar.gz
  • build again

You can overwrite the pre-built GO files every time with a new set of 93 bootstrapped GO files, then create the new Guile 2.2.7 tape archive, and finally re-link this to guile-2.2.7.tar.gz.

I'll add a list of file sizes of the bootstrapped GO files from each try – they vary quite often!

comment:79 Changed 4 years ago by ballapete (Peter "Pete" Dyballa)

List of file size:

file name                               | Tiger built (4.045.720)     | w/ Tiger on Leo (3.996.416) | Leo bootstrapped (3.994.806)| w/ Leo bootstrap' (3.995.940)
————————————————————————————————————————|—————————————————————————————|—————————————————————————————|—————————————————————————————|————————————————————————————
ice-9/binary-ports.go                   |   68045 2020-09-13 21:41:27 |   68045 2020-09-17 15:45:32 |   68045 2020-09-21 18:39:53 |   68045 2020-09-22 01:42:14
ice-9/boot-9.go                         |  611413 2020-09-13 21:35:12 |  611397 2020-09-17 15:44:45 |  611413 2020-09-21 18:33:29 |  611397 2020-09-22 01:41:26
ice-9/command-line.go                   |   80709 2020-09-13 21:43:01 |   80709 2020-09-17 15:45:46 |   80709 2020-09-21 18:41:27 |   80709 2020-09-22 01:42:28
ice-9/control.go                        |   75429 2020-09-13 21:44:29 |   75429 2020-09-17 15:45:55 |   75429 2020-09-21 18:42:53 |   75429 2020-09-22 01:42:37
ice-9/deprecated.go                     |  165805 2020-09-13 21:40:06 |  165805 2020-09-17 15:45:25 |  165805 2020-09-21 18:38:34 |  165805 2020-09-22 01:42:07
ice-9/eval.go                           |   97013 2020-09-13 02:19:41 |   97013 2020-09-17 15:03:00 |   97013 2020-09-20 23:08:25 |   97013 2020-09-22 00:58:57
ice-9/format.go                         |  213797 2020-09-13 21:48:24 |  213797 2020-09-17 15:46:56 |  213797 2020-09-21 18:45:47 |  213797 2020-09-22 01:43:40
ice-9/getopt-long.go                    |  178597 2020-09-13 21:50:09 |  178573 2020-09-17 15:47:18 |  178597 2020-09-21 18:47:36 |  178573 2020-09-22 01:44:03
ice-9/i18n.go                           |   89125 2020-09-13 21:51:33 |   89125 2020-09-17 15:47:34 |   89125 2020-09-21 18:49:02 |   89125 2020-09-22 01:44:19
ice-9/match.go                          |  272157 2020-09-13 21:53:34 |  272157 2020-09-17 15:48:05 |  272157 2020-09-21 18:51:07 |  272157 2020-09-22 01:44:51
ice-9/networking.go                     |   75099 2020-09-13 21:54:45 |   75099 2020-09-17 15:48:14 |   75099 2020-09-21 18:52:20 |   75099 2020-09-22 01:45:00
ice-9/ports.go                          |   95533 2020-09-13 21:36:52 |   95525 2020-09-17 15:45:00 |   95533 2020-09-21 18:35:22 |   95525 2020-09-22 01:41:40
ice-9/posix.go                          |   73987 2020-09-13 21:55:55 |   73987 2020-09-17 15:48:22 |   73987 2020-09-21 18:53:33 |   73987 2020-09-22 01:45:08
ice-9/pretty-print.go                   |   88157 2020-09-13 22:02:19 |   88157 2020-09-17 15:49:30 |   88157 2020-09-21 19:00:14 |   88157 2020-09-22 01:46:18
ice-9/psyntax-pp.go                     |  620189 2020-09-13 07:13:20 |  620189 2020-09-17 15:06:03 |  620189 2020-09-21 04:10:40 |  620189 2020-09-22 01:02:14
ice-9/r5rs.go                           |   68181 2020-09-13 21:38:17 |   68181 2020-09-17 15:45:07 |   68181 2020-09-21 18:36:45 |   68181 2020-09-22 01:41:47
ice-9/rdelim.go                         |   74261 2020-09-13 21:57:07 |   74261 2020-09-17 15:48:31 |   74261 2020-09-21 18:54:47 |   74261 2020-09-22 01:45:18
ice-9/receive.go                        |   68637 2020-09-13 21:58:14 |   68637 2020-09-17 15:48:38 |   68637 2020-09-21 18:55:58 |   68637 2020-09-22 01:45:25
ice-9/regex.go                          |   73653 2020-09-13 21:59:25 |   73653 2020-09-17 15:48:48 |   73653 2020-09-21 18:57:12 |   73653 2020-09-22 01:45:35
ice-9/session.go                        |   84813 2020-09-13 22:00:47 |   84813 2020-09-17 15:49:04 |   84813 2020-09-21 18:58:37 |   84813 2020-09-22 01:45:51
ice-9/vlist.go                          |  281365 2020-09-13 09:53:19 |  281381 2020-09-17 15:09:06 |  281365 2020-09-21 06:41:24 |  281381 2020-09-22 01:05:28
language/bytecode.go                    |   71133 2020-09-13 20:43:24 |   71133 2020-09-17 15:39:14 |   71133 2020-09-21 17:42:25 |   71133 2020-09-22 01:36:03
language/bytecode/spec.go               |   68597 2020-09-13 20:48:10 |   68597 2020-09-17 15:39:21 |   68597 2020-09-21 17:46:06 |   68597 2020-09-22 01:36:10
language/cps.go                         |  685109 2020-09-13 15:01:54 |  684989 2020-09-17 15:20:34 |  685109 2020-09-21 11:55:48 |  684989 2020-09-22 01:17:41
language/cps/closure-conversion.go      |  188973 2020-09-13 15:23:12 |  188973 2020-09-17 15:21:39 |  188973 2020-09-21 12:17:06 |  188973 2020-09-22 01:18:51
language/cps/compile-bytecode.go        |  207061 2020-09-13 15:44:53 |  207061 2020-09-17 15:23:08 |  207061 2020-09-21 12:40:24 |  207061 2020-09-22 01:20:26
language/cps/constructors.go            |   75405 2020-09-13 15:57:54 |   75405 2020-09-17 15:23:22 |   75405 2020-09-21 12:52:47 |   75405 2020-09-22 01:20:40
language/cps/contification.go           |   89525 2020-09-13 16:10:57 |   89525 2020-09-17 15:23:59 |   89525 2020-09-21 13:06:02 |   89525 2020-09-22 01:21:09
language/cps/cse.go                     |   99901 2020-09-13 16:24:42 |   99901 2020-09-17 15:24:43 |   99901 2020-09-21 13:20:14 |   99901 2020-09-22 01:21:46
language/cps/dce.go                     |   88517 2020-09-13 16:37:07 |   88517 2020-09-17 15:25:13 |   88517 2020-09-21 13:32:44 |   88517 2020-09-22 01:22:15
language/cps/effects-analysis.go        |  285317 2020-09-13 16:52:06 |  285357 2020-09-17 15:26:02 |  285317 2020-09-21 13:47:34 |  285357 2020-09-22 01:23:03
language/cps/elide-values.go            |   72205 2020-09-13 17:02:00 |   72205 2020-09-17 15:26:13 |   72205 2020-09-21 13:57:53 |   72205 2020-09-22 01:23:13
language/cps/handle-interrupts.go       |   71061 2020-09-13 17:11:50 |   71061 2020-09-17 15:26:23 |   71061 2020-09-21 14:07:41 |   71061 2020-09-22 01:23:24
language/cps/intmap.go                  |  295637 2020-09-13 08:16:27 |  295677 2020-09-17 15:06:58 |  295637 2020-09-21 05:04:55 |  295677 2020-09-22 01:03:14
language/cps/intset.go                  |  300109 2020-09-13 09:00:24 |  300149 2020-09-17 15:07:55 |  300109 2020-09-21 05:47:58 |  300149 2020-09-22 01:04:15
language/cps/licm.go                    |   85301 2020-09-13 17:23:01 |   85301 2020-09-17 15:26:49 |   85301 2020-09-21 14:19:21 |   85301 2020-09-22 01:23:49
language/cps/optimize.go                |   74141 2020-09-13 18:42:47 |   74141 2020-09-17 15:28:58 |   74141 2020-09-21 15:40:56 |   74141 2020-09-22 01:25:55
language/cps/peel-loops.go              |   82477 2020-09-13 17:33:31 |   82469 2020-09-17 15:27:08 |   82477 2020-09-21 14:30:13 |   82469 2020-09-22 01:24:07
language/cps/primitives.go              |   73221 2020-09-13 17:42:50 |   73221 2020-09-17 15:27:16 |   73221 2020-09-21 14:39:59 |   73221 2020-09-22 01:24:16
language/cps/prune-bailouts.go          |   72357 2020-09-13 17:53:34 |   72357 2020-09-17 15:27:27 |   72357 2020-09-21 14:49:36 |   72357 2020-09-22 01:24:26
language/cps/prune-top-level-scopes.go  |   69565 2020-09-13 18:03:06 |   69565 2020-09-17 15:27:36 |   69565 2020-09-21 14:59:22 |   69565 2020-09-22 01:24:35
language/cps/reify-primitives.go        |   85421 2020-09-13 18:13:51 |   85413 2020-09-17 15:28:01 |   85421 2020-09-21 15:10:15 |   85413 2020-09-22 01:24:58
language/cps/renumber.go                |   82181 2020-09-13 18:24:21 |   82181 2020-09-17 15:28:26 |   82181 2020-09-21 15:20:57 |   82181 2020-09-22 01:25:23
language/cps/rotate-loops.go            |   81093 2020-09-13 18:33:57 |   81085 2020-09-17 15:28:48 |   81093 2020-09-21 15:31:15 |   81085 2020-09-22 01:25:45
language/cps/self-references.go         |   73149 2020-09-13 19:02:43 |   73149 2020-09-17 15:29:42 |   73149 2020-09-21 16:00:00 |   73149 2020-09-22 01:26:38
language/cps/simplify.go                |   85325 2020-09-13 18:53:50 |   85325 2020-09-17 15:29:29 |   85325 2020-09-21 15:51:07 |   85325 2020-09-22 01:26:25
language/cps/slot-allocation.go         |  296229 2020-09-13 19:15:22 |  296285 2020-09-17 15:31:01 |  296229 2020-09-21 16:13:48 |  296285 2020-09-22 01:27:56
language/cps/spec.go                    |   69373 2020-09-13 19:22:46 |   69373 2020-09-17 15:31:09 |   69373 2020-09-21 16:21:22 |   69373 2020-09-22 01:28:05
language/cps/specialize-numbers.go      |  181189 2020-09-13 19:39:34 |  181189 2020-09-17 15:32:24 |  181189 2020-09-21 16:38:02 |  181189 2020-09-22 01:29:18
language/cps/specialize-primcalls.go    |   78533 2020-09-13 19:30:41 |   78533 2020-09-17 15:31:29 |   78533 2020-09-21 16:29:10 |   78533 2020-09-22 01:28:24
language/cps/split-rec.go               |   77893 2020-09-13 19:47:32 |   77885 2020-09-17 15:32:43 |   77893 2020-09-21 16:45:23 |   77885 2020-09-22 01:29:37
language/cps/type-checks.go             |   69725 2020-09-13 19:54:13 |   69725 2020-09-17 15:32:51 |   69725 2020-09-21 16:52:28 |   69725 2020-09-22 01:29:46
language/cps/type-fold.go               |  100549 2020-09-13 20:01:29 |  100549 2020-09-17 15:33:23 |  100549 2020-09-21 17:00:03 |  100549 2020-09-22 01:30:17
language/cps/types.go                   |  839133 2020-09-13 20:15:05 |  839101 2020-09-17 15:37:06 |  839133 2020-09-21 17:13:48 |  839101 2020-09-22 01:33:56
language/cps/utils.go                   |  100253 2020-09-13 09:24:44 |  100269 2020-09-17 15:08:25 |  100253 2020-09-21 06:13:52 |  100269 2020-09-22 01:04:44
language/cps/verify.go                  |   88893 2020-09-13 20:20:19 |   88893 2020-09-17 15:37:35 |   88893 2020-09-21 17:19:14 |   88893 2020-09-22 01:34:24
language/cps/with-cps.go                |   74333 2020-09-13 20:24:46 |   74333 2020-09-17 15:37:44 |   74333 2020-09-21 17:23:45 |   74333 2020-09-22 01:34:33
language/scheme/compile-tree-il.go      |   67861 2020-09-13 20:33:26 |   67861 2020-09-17 15:37:58 |   67861 2020-09-21 17:32:20 |   67861 2020-09-22 01:34:47
language/scheme/decompile-tree-il.go    |  182477 2020-09-13 20:39:39 |  182477 2020-09-17 15:39:05 |  182477 2020-09-21 17:38:27 |  182477 2020-09-22 01:35:53
language/scheme/spec.go                 |   69021 2020-09-13 20:29:05 |   69021 2020-09-17 15:37:51 |   69021 2020-09-21 17:28:05 |   69021 2020-09-22 01:34:40
language/tree-il.go                     |  195853 2020-09-13 10:47:59 |  195821 2020-09-17 15:10:38 |  195853 2020-09-21 07:35:21 |  195821 2020-09-22 01:07:06
language/tree-il/analyze.go             |  393213 2020-09-13 11:17:54 |  393181 2020-09-17 15:11:56 |  393213 2020-09-21 08:06:28 |  393181 2020-09-22 01:08:30
language/tree-il/canonicalize.go        |   70373 2020-09-13 11:36:03 |   70373 2020-09-17 15:12:06 |   70373 2020-09-21 08:24:36 |   70373 2020-09-22 01:08:40
language/tree-il/compile-cps.go         |  214533 2020-09-13 12:09:33 |  214533 2020-09-17 15:13:52 |  214533 2020-09-21 08:58:59 |  214533 2020-09-22 01:10:33
language/tree-il/debug.go               |   77421 2020-09-13 12:28:03 |   77413 2020-09-17 15:14:11 |   77421 2020-09-21 09:18:18 |   77413 2020-09-22 01:10:54
language/tree-il/effects.go             |  194181 2020-09-13 12:52:28 |  194125 2020-09-17 15:15:02 |  194181 2020-09-21 09:42:54 |  194125 2020-09-22 01:11:49
language/tree-il/fix-letrec.go          |   79541 2020-09-13 13:10:17 |   79541 2020-09-17 15:15:21 |   79541 2020-09-21 10:01:44 |   79541 2020-09-22 01:12:09
language/tree-il/optimize.go            |   68621 2020-09-13 13:25:57 |   68621 2020-09-17 15:15:28 |   68621 2020-09-21 10:19:03 |   68621 2020-09-22 01:12:17
language/tree-il/peval.go               |  591781 2020-09-13 14:01:21 |  591725 2020-09-17 15:17:59 |  591781 2020-09-21 10:54:57 |  591725 2020-09-22 01:14:57
language/tree-il/primitives.go          |  173293 2020-09-13 14:20:55 |  173293 2020-09-17 15:18:47 |  173293 2020-09-21 11:14:28 |  173293 2020-09-22 01:15:47
language/tree-il/spec.go                |   68933 2020-09-13 14:34:36 |   68933 2020-09-17 15:18:54 |   68933 2020-09-21 11:28:43 |   68933 2020-09-22 01:15:55
language/value/spec.go                  |   67675 2020-09-13 20:51:46 |   67675 2020-09-17 15:39:28 |   67675 2020-09-21 17:49:51 |   67675 2020-09-22 01:36:16
srfi/srfi-1.go                          |  103349 2020-09-13 10:18:27 |  103349 2020-09-17 15:09:31 |  103349 2020-09-21 07:06:38 |  103349 2020-09-22 01:05:57
system/base/ck.go                       |   70805 2020-09-13 21:28:18 |   70805 2020-09-17 15:42:49 |   70805 2020-09-21 18:26:37 |   70805 2020-09-22 01:39:33
system/base/compile.go                  |   78317 2020-09-13 21:03:15 |   78309 2020-09-17 15:40:05 |   78317 2020-09-21 18:01:21 |   78309 2020-09-22 01:36:52
system/base/lalr.go                     |  305589 2020-09-13 21:12:21 |  305589 2020-09-17 15:41:23 |  305589 2020-09-21 18:10:34 |  305589 2020-09-22 01:38:09
system/base/language.go                 |   73181 2020-09-13 21:06:53 |   73181 2020-09-17 15:40:14 |   73181 2020-09-21 18:04:59 |   73181 2020-09-22 01:37:01
system/base/message.go                  |   96005 2020-09-13 21:16:26 |   95997 2020-09-17 15:41:41 |   96005 2020-09-21 18:14:42 |   95997 2020-09-22 01:38:27
system/base/pmatch.go                   |   74717 2020-09-13 20:55:31 |   74717 2020-09-17 15:39:37 |   74717 2020-09-21 17:53:38 |   74717 2020-09-22 01:36:25
system/base/syntax.go                   |   82717 2020-09-13 20:59:31 |   82717 2020-09-17 15:39:53 |   82717 2020-09-21 17:57:35 |   82717 2020-09-22 01:36:40
system/base/target.go                   |   73781 2020-09-13 21:19:59 |   73781 2020-09-17 15:41:50 |   73781 2020-09-21 18:18:17 |   73781 2020-09-22 01:38:36
system/base/types.go                    |  283901 2020-09-13 21:24:48 |  283989 2020-09-17 15:42:41 |  283901 2020-09-21 18:23:06 |  283989 2020-09-22 01:39:25
system/foreign.go                       |   76069 2020-09-13 22:23:09 |   76069 2020-09-17 16:02:35 |   76069 2020-09-21 19:21:53 |   76069 2020-09-22 01:59:43
system/vm/assembler.go                  | 1124685 2020-09-13 22:10:43 | 1124573 2020-09-17 15:53:53 | 1124685 2020-09-21 19:09:01 | 1124573 2020-09-22 01:50:49
system/vm/debug.go                      |  370565 2020-09-13 22:12:18 |  370541 2020-09-17 15:54:47 |  370565 2020-09-21 19:10:47 |  370541 2020-09-22 01:51:44
system/vm/disassembler.go               |  387141 2020-09-13 22:14:39 |  387141 2020-09-17 15:56:32 |  387141 2020-09-21 19:13:19 |  387141 2020-09-22 01:53:31
system/vm/dwarf.go                      |  976141 2020-09-13 22:18:25 |  975989 2020-09-17 15:59:14 |  976141 2020-09-21 19:17:10 |  975989 2020-09-22 01:56:17
system/vm/elf.go                        |  664725 2020-09-13 22:20:34 |  664637 2020-09-17 16:00:42 |  664725 2020-09-21 19:19:20 |  664637 2020-09-22 01:57:47
system/vm/frame.go                      |  175509 2020-09-13 22:21:15 |  175509 2020-09-17 16:01:08 |  175509 2020-09-21 19:20:00 |  175509 2020-09-22 01:58:14
system/vm/linker.go                     |  291813 2020-09-13 22:22:20 |  291789 2020-09-17 16:01:55 |  291813 2020-09-21 19:21:05 |  291789 2020-09-22 01:59:02
system/vm/loader.go                     |   67541 2020-09-13 22:22:30 |   67541 2020-09-17 16:02:01 |   67541 2020-09-21 19:21:15 |   67541 2020-09-22 01:59:08
system/vm/program.go                    |   83629 2020-09-13 22:22:52 |   83621 2020-09-17 16:02:19 |   83629 2020-09-21 19:21:37 |   83621 2020-09-22 01:59:27
system/vm/vm.go                         |   67765 2020-09-13 22:22:59 |   67765 2020-09-17 16:02:26 |   67765 2020-09-21 19:21:43 |   67765 2020-09-22 01:59:33
————————————————————————————————————————|—————————————————————————————|—————————————————————————————|—————————————————————————————|————————————————————————————

comment:80 in reply to:  43 Changed 2 years ago by barracuda156

Replying to ballapete:

Replying to kencu:

I wonder if the main guile port is ripe to be updated to 2.9.1 as well, and what, if anything, would be broken by so doing...

No, it's not! https://www.gnu.org/software/guile/download/ states: "The latest release of Guile's legacy 2.2.x series is 2.2.7." Version 2.9.1 could have been some experimental release. The official download site https://ftp.gnu.org/gnu/guile/ jumps from version 2.2.7 to version 3.0.0. I am going to try version 2.2.7 from March directly, no intermediate version 2.2.4 from July 2018.

Intermediate versions are here: http://alpha.gnu.org/gnu/guile/ The latest being 2.9.9.

comment:81 in reply to:  63 Changed 17 months ago by barracuda156

Replying to kencu:

I started making a new set of prebuilts for PPC 10.5, and there were just too many to bother with so I scrubbed the project. Besides, are the 10.4 PPC ones different or the same? If we ever do use them, should they be build on 10.4? Does it make any difference. There seems to be no processor specific code in them ("cpu_subtype_all", etc).

Anyway, it works fine as I pushed it now, other than requiring a bit of patience to build them. If we can get a reliable set of prebuilts to use, I'll update the port with them later.

It probably makes sense to make prebuilts, since bootstrapping is insanely slow even on G5 2.3 (on the Quad it builds overnight). Can’t imagine how long it takes on a single core G4.

I could perhaps make prebuilts for guile 3.0.8, if you instruct me what exactly to do. (I don’t want to do it twice, for obvious reasons.) Or do I just build normally and copy a folder of built files from Stage 0?

Changed 17 months ago by barracuda156

Attachment: guile.zip added

ppc32 prebuilts from 10.6 (three files for each of stages 0, 1, 2)

Note: See TracTickets for help on using tickets.