Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#59706 closed defect (fixed)

libgcc7 @7.5.0 does not build on PPC Mac OS X 10.5.8, Leopard, because of internal compiler error

Reported by: ballapete (Peter "Pete" Dyballa) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: leopard Cc: kencu (Ken), josephsacco
Port: libgcc7

Description

/bin/sh ./libtool --tag=CC   --mode=compile /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build/./gcc/xgcc -B/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build/./gcc/ -B/opt/local/ppc-apple-darwin9/bin/ -B/opt/local/ppc-apple-darwin9/lib/ -isystem /opt/local/ppc-apple-darwin9/include -isystem /opt/local/ppc-apple-darwin9/sys-include    -DHAVE_CONFIG_H -I. -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp  -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/config/bsd -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/config/darwin -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/config/posix -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/../include  -Wall -Werror -Wc,-pthread -g -O2 -pipe -Os -MT target.lo -MD -MP -MF .deps/target.Tpo -c -o target.lo /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/target.c
libtool: compile:  /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build/./gcc/xgcc -B/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build/./gcc/ -B/opt/local/ppc-apple-darwin9/bin/ -B/opt/local/ppc-apple-darwin9/lib/ -isystem /opt/local/ppc-apple-darwin9/include -isystem /opt/local/ppc-apple-darwin9/sys-include -DHAVE_CONFIG_H -I. -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/config/bsd -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/config/darwin -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/config/posix -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp -I/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/../include -Wall -pthread -Werror -g -O2 -pipe -Os -MT target.lo -MD -MP -MF .deps/target.Tpo -c /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/target.c  -fno-common -DPIC -o .libs/target.o
/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/target.c: In function 'gomp_map_lookup':
/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/libgomp/target.c:151:1: internal compiler error: in maybe_record_trace_start, at dwarf2cfi.c:2330
 }
 ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://trac.macports.org/newticket> for instructions.
{standard input}:616:non-relocatable subtraction expression, "_register_lock" minus "L3$pb"
{standard input}:616:symbol: "_register_lock" can't be undefined in a subtraction expression
{standard input}:615:non-relocatable subtraction expression, "_register_lock" minus "L3$pb"
{standard input}:615:symbol: "_register_lock" can't be undefined in a subtraction expression
{standard input}:423:non-relocatable subtraction expression, "_register_lock" minus "L3$pb"
{standard input}:423:symbol: "_register_lock" can't be undefined in a subtraction expression
{standard input}:422:non-relocatable subtraction expression, "_register_lock" minus "L3$pb"
{standard input}:422:symbol: "_register_lock" can't be undefined in a subtraction expression
{standard input}:223:non-relocatable subtraction expression, "_devices" minus "L2$pb"
{standard input}:223:symbol: "_devices" can't be undefined in a subtraction expression
{standard input}:209:non-relocatable subtraction expression, "_num_devices" minus "L2$pb"
{standard input}:209:symbol: "_num_devices" can't be undefined in a subtraction expression
{standard input}:202:non-relocatable subtraction expression, "_devices" minus "L2$pb"
{standard input}:202:symbol: "_devices" can't be undefined in a subtraction expression
{standard input}:199:non-relocatable subtraction expression, "_num_devices" minus "L2$pb"
{standard input}:199:symbol: "_num_devices" can't be undefined in a subtraction expression
{standard input}:154:non-relocatable subtraction expression, "_devices" minus "L1$pb"
{standard input}:154:symbol: "_devices" can't be undefined in a subtraction expression
{standard input}:136:non-relocatable subtraction expression, "_num_devices" minus "L1$pb"
{standard input}:136:symbol: "_num_devices" can't be undefined in a subtraction expression
{standard input}:132:non-relocatable subtraction expression, "_num_devices_openmp" minus "L1$pb"
{standard input}:132:symbol: "_num_devices_openmp" can't be undefined in a subtraction expression
{standard input}:130:non-relocatable subtraction expression, "_devices" minus "L1$pb"
{standard input}:130:symbol: "_devices" can't be undefined in a subtraction expression
{standard input}:128:non-relocatable subtraction expression, "_num_devices_openmp" minus "L1$pb"
{standard input}:128:symbol: "_num_devices_openmp" can't be undefined in a subtraction expression
{standard input}:123:non-relocatable subtraction expression, "_devices" minus "L1$pb"
{standard input}:123:symbol: "_devices" can't be undefined in a subtraction expression
{standard input}:120:non-relocatable subtraction expression, "_num_devices" minus "L1$pb"
{standard input}:120:symbol: "_num_devices" can't be undefined in a subtraction expression
{standard input}:116:non-relocatable subtraction expression, "_num_devices" minus "L1$pb"
{standard input}:116:symbol: "_num_devices" can't be undefined in a subtraction expression
make[5]: *** [target.lo] Error 1
make[5]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build/ppc-apple-darwin9/libgomp'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build/ppc-apple-darwin9/libgomp'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build/ppc-apple-darwin9/libgomp'
make[2]: *** [all-stage1-target-libgomp] Error 2
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build'
make: *** [bootstrap-lean] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/build" && /usr/bin/make -w bootstrap-lean 

The function is:

  134	static inline splay_tree_key
  135	gomp_map_lookup (splay_tree mem_map, splay_tree_key key)
  136	{
  137	  if (key->host_start != key->host_end)
  138	    return splay_tree_lookup (mem_map, key);
  139	
  140	  key->host_end++;
  141	  splay_tree_key n = splay_tree_lookup (mem_map, key);
  142	  key->host_end--;
  143	  if (n)
  144	    return n;
  145	  key->host_start--;
  146	  n = splay_tree_lookup (mem_map, key);
  147	  key->host_start++;
  148	  if (n)
  149	    return n;
  150	  return splay_tree_lookup (mem_map, key);
  151	}

The report about a missing executable seems faulty. dwarf2cfi.c was compiled into dwarf2cfi.o which was archived in libbackend.a. The source file can be found in /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_gcc7/libgcc7/work/gcc-7.5.0/gcc, or in ../gcc-7.5.0/gcc relative to build directory. dwarf2cfi.c has around line #2330:

 2272	/* If LABEL is the start of a trace, then initialize the state of that
 2273	   trace from CUR_TRACE and CUR_ROW.  */
 2274	
 2275	static void
 2276	maybe_record_trace_start (rtx_insn *start, rtx_insn *origin)
 2277	{
 2278	  dw_trace_info *ti;
 2279	  HOST_WIDE_INT args_size;
 2280	
 2281	  ti = get_trace_info (start);
 2282	  gcc_assert (ti != NULL);
 2283	
 2284	  if (dump_file)
 2285	    {
 2286	      fprintf (dump_file, "   saw edge from trace %u to %u (via %s %d)\n",
 2287		       cur_trace->id, ti->id,
 2288		       (origin ? rtx_name[(int) GET_CODE (origin)] : "fallthru"),
 2289		       (origin ? INSN_UID (origin) : 0));
 2290	    }
 2291	
 2292	  args_size = cur_trace->end_true_args_size;
 2293	  if (ti->beg_row == NULL)
 2294	    {
 2295	      /* This is the first time we've encountered this trace.  Propagate
 2296		 state across the edge and push the trace onto the work list.  */
 2297	      ti->beg_row = copy_cfi_row (cur_row);
 2298	      ti->beg_true_args_size = args_size;
 2299	
 2300	      ti->cfa_store = cur_trace->cfa_store;
 2301	      ti->cfa_temp = cur_trace->cfa_temp;
 2302	      ti->regs_saved_in_regs = cur_trace->regs_saved_in_regs.copy ();
 2303	
 2304	      trace_work_list.safe_push (ti);
 2305	
 2306	      if (dump_file)
 2307		fprintf (dump_file, "\tpush trace %u to worklist\n", ti->id);
 2308	    }
 2309	  else
 2310	    {
 2311	
 2312	      /* We ought to have the same state incoming to a given trace no
 2313		 matter how we arrive at the trace.  Anything else means we've
 2314		 got some kind of optimization error.  */
 2315	#if CHECKING_P
 2316	      if (!cfi_row_equal_p (cur_row, ti->beg_row))
 2317		{
 2318		  if (dump_file)
 2319		    {
 2320		      fprintf (dump_file, "Inconsistent CFI state!\n");
 2321		      fprintf (dump_file, "SHOULD have:\n");
 2322		      dump_cfi_row (dump_file, ti->beg_row);
 2323		      fprintf (dump_file, "DO have:\n");
 2324		      dump_cfi_row (dump_file, cur_row);
 2325		    }
 2326	
 2327		  gcc_unreachable ();
 2328		}
 2329	#endif
 2330	
 2331	      /* The args_size is allowed to conflict if it isn't actually used.  */
 2332	      if (ti->beg_true_args_size != args_size)
 2333		ti->args_size_undefined = true;
 2334	    }
 2335	}

The function gcc_unreachable () is #define'd in ../gcc-7.5.0/gcc/system.h:

  747	/* Use gcc_unreachable() to mark unreachable locations (like an
  748	   unreachable default case of a switch.  Do not use gcc_assert(0).  */
  749	#if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING
  750	#define gcc_unreachable() __builtin_unreachable ()
  751	#else
  752	#define gcc_unreachable() (fancy_abort (__FILE__, __LINE__, __FUNCTION__))
  753	#endif

Attachments (2)

main.log (3.5 MB) - added by ballapete (Peter "Pete" Dyballa) 4 years ago.
Main.log from PPC Leopard
libgcc7_failure-main_.log.gz (403.9 KB) - added by miniupnp (Thomas BERNARD) 4 years ago.
main.log of building libgcc 7.5.0 on a Tiger PPC

Change History (57)

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

Attachment: main.log added

Main.log from PPC Leopard

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

I'm working on this now, Pete. gcc7/libgcc7 does build on TigerPPC, using apple-gcc-4.2 as a bootstrap compiler, so hopefully that will be our stepping stone.

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

Cc: kencu added

Changed 4 years ago by miniupnp (Thomas BERNARD)

main.log of building libgcc 7.5.0 on a Tiger PPC

comment:3 Changed 4 years ago by miniupnp (Thomas BERNARD)

libgcc7 fails to build on my PPC Tiger. Macports version 2.6.2

I have an installed version of libgcc7 and gcc7 : 7.4.0_3

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

I spoke with gcc's Darwin lead, and gcc7 builds for him on his Leopard PPC system without issues. Hmm.

I tried to build gcc7 separate from MacPorts, in the normal gcc way, and it failed as above. Hmmm.

On the other hand, gcc7 built for me on Tiger PPC.

Something strange is happening. TBA... I may have to get the gcc lead over here to look for us.

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

I have asked the smart people to come and take a look.

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

weirdness:

$ port -v installed | grep gcc7
  gcc7 @7.5.0_0 (active) platform='darwin 8' archs='ppc' date='2019-11-20T01:30:27-0800'
  libgcc7 @7.5.0_0 (active) platform='darwin 8' archs='ppc' date='2019-11-19T11:37:12-0800'

but not building (yet) on Leopard PPC.

comment:7 Changed 4 years ago by josephsacco

Cc: josephsacco added

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

so the suggestion from upstream was to try a non-MacPorts gcc7 build and see how that works. It's still building, but it looks like it will finish on 10.5 PPC. So it's going to be something in the MacPorts setup that is making the gcc build fail, it appears.

If you want to build gcc7 yourself and help get this sorted out, you can do this:

First, open up a clean terminal, with only the default PATH set, not including MacPorts /opt/local/bin or any other non-Apple folders.

In a writeable folder, like /tmp, make a dir. I used /tmp/gcc7build. Then obtain and decompress the following in that folder:

gcc-7.5.0		gmp-6.1.2		isl-0.21		mpc-1.1.0		mpfr-4.0.2
gcc-7.5.0.tar.xz	gmp-6.1.2.tar.bz2	isl-0.21.tar.bz2	mpc-1.1.0.tar.gz	mpfr-4.0.2.tar.xz

then move into the gcc-7.5.0 folder, and symlink the parts in.

cd gcc-7.5.0
ln -s ../gmp-6.1.2 gmp
ln -s ../isl-0.21 isl
ln -s ../mpc-1.1.0 mpc
ln -s ../mpfr-4.0.2 mpfr

now make a build directory and then build inside there.

cd..
mkdir build
cd build

and then build away, with a command something like this (gcc-dev recommended, but this does not match what we are doing on MacPorts exactly right now)

CC=/usr/bin/gcc-4.2 CXX=/usr/bin/g++-4.2 /tmp/gcc7build/gcc-7.5.0/configure --prefix=/opt/ken/powerpc-apple-darwin9/gcc-7-5a --target=powerpc-apple-darwin9 --host=powerpc-apple-darwin9 --build=powerpc-apple-darwin9 --disable-nls --enable-version-specific-runtime-libs --enable-languages=all,obj-c++

make -j 2

and then go for a long long long walk.

BTW, I think it's about time we made a fully cross-compiling gcc7 that can build +universal again, but that's another topic...

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

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

Replying to miniupnp:

I see a few differences between your Tiger and mine:

:info:configure checking for ld... (cached) /opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.1/ld
vs.
:info:configure checking for ld... (cached) /opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld

:info:build checking version of bison... 3.0.5, ok
vs.
:info:build checking version of bison... 3.4.2, ok

I have runtest (from dejagnu), doxygen, dot, docbook-xsl-ns, dblatex, pdflatex. I am still waiting for the build to finish here. Or hit the same error…

Since you have

:info:build warning: gcc/cc1obj-checksum.o differs
:info:build warning: gcc/cc1objplus-checksum.o differs
:info:build Bootstrap comparison failure!
:info:build gcc/host-darwin.o differs

it's likely that some disk space was missing. 3–4 GB would be fine. Some amount gets abused by core files in /cores… Or garbage bin.

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

So as expected, gcc 7.5.0 builds through on my 10.5 PPC system without a hiccup. Something in MacPorts appears to be messing up the build. Now the hard part comes -- what is it?

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

Here's something that looks promising. MacPorts adds some default optflags to a build that in some cases can mess gcc up. Removing those seems to help -- the build of gcc7 has moved past the point in libgomp where it previously failed, and although it will take a few hours, looks like it might be on the way.

You can try for yourself by adding this bit near the bottom of the gcc7 portfile, to clear the optflags:

configure.cc_archflags
+ configure.optflags
configure.cxx-append ${configure.cxx_archflags}
Last edited 4 years ago by kencu (Ken) (previous) (diff)

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

I'm not too impressed to be seeing this scattered throughout the gcc7 build, though:

-D_GLIBCXX_USE_CXX11_ABI=0 

I think base could be messing us up there -- I have no idea what kind of mayhem throwing that flag into the build of gcc7/libgcc7 is going to do. I just don't think it belongs there, that's for sure.

To get around that, I cleared all the flags

configure.cflags
configure.cxxflags
configure.ldflags
configure.optflags

just have to let this build through on 10.5, and work through what this might do to 10.6 to 10.8 before I decide how to commit it

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

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

Resolution: fixed
Status: newclosed

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

to get things working on PPC, I just cleared configure.optflags for the moment.

no revbump as this does not change any installed files.

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

libgcc7 finally built here on my Tiger system. Now gcc7 is building (the next few days), 3.3 GB of free disk space are available.

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

Replying to kencu:

to get things working on PPC, I just cleared configure.optflags for the moment.

I'll have to wait until Tiger has updated all packages… (both systems are on the same disk in one PowerBook G4)

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

you don't need to fuss--I pushed the fix through, so that's why libgcc7 built for you on Tiger; it'll build now on Leopard too...

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

comment:18 Changed 4 years ago by josephsacco

Thanks, Ken. My G4 PPC-based Mac gets to live another day.

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

With pleasure -- gotta keep these vintage machines going! Did you write your "Morphine, ... " book on that, or a MacPlus back in the day?

comment:20 Changed 4 years ago by josephsacco

Not my book... I am not the M.D., the astronaut, or the hockey player. My academic training was in theoretical physics. A poor job market for physicists forced me to take my problem solving skills and apply them in the I.T. world.

As for the MacPlus... I certainly owned one and programmed it. I actually go back further than the Macplus. In another time, in another place I programmed on a Lisa using Pascal.

Technology stands still for no one... :-)

Be well,

-Joseph

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

Hmmm --- all may not be well here.

Ever since I upgraded libgcc7, cmake is delivering memory errors "non-aligned pointer being freed".

reverting libgcc7 back to the 7.4.x version seems to fix those errors.... so ...

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

libgcc7 and GCC7, both version 7.5, finally built on PPC Leopard, Mac OS X 10.5.8, G4 (PowerPC 7447a). Next I'll try to build CMake and see how it performs…

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

the new cmake won't build yet until I push my various fixes through. try the old version you already have installed on PPC Leopard though -- just run cmake -- if it works fine for you with libgcc7 7.5.0, then I guess it must be something specific on my system. If yours also fails, then we have a problem. cmake on Tiger works fine with libgcc7 7.5.0 for me.

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

Replying to kencu:

cmake --help
cmake(31776) malloc: *** error for object 0x74c30c: Non-aligned pointer being freed
*** set a breakpoint in malloc_error_break to debug

Endless loop (not summer)…

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

Replying to kencu:

clamav is outdated. It needs GGC6 or GCC7 to build. I am not sure whether I built it before with GCC7(@7.4). This old freshclam still works fine…

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

OK. Same issue I have, then. Something is not right with libgcc7 7.5.0 on 10.5 PPC. Until that gets sorted out by somebody clever, all we can do is revert back to libgcc7 7.4.x, which is why I never remove outdated installed packages until a year or two goes by...

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

Replying to kencu:

You must have a big fat Greek disk then…

Anyway, clamav @0.102.1 built, make check succeeded, and freshclam does its job as it should. So it must be some inerference with Legacy Support that makes old CMake crash…

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

Replying to ballapete:

Replying to kencu:

The kernel reports: proc: table full. I'll better reboot now…

comment:29 in reply to:  27 ; Changed 4 years ago by kencu (Ken)

Replying to ballapete:

So it must be some inerference with Legacy Support that makes old CMake crash…

I wondered about that too -- but it's not happening on Tiger, which also uses the same legacysupport mechanism, so that wouldn't really make easy sense of it...

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

Replying to kencu:

I wondered about that too -- but it's not happening on Tiger, which also uses the same legacysupport mechanism, so that wouldn't really make easy sense of it...

Arn't the provided function sets different? Imagine a function on Leopard which gets used by CMake that Tiger has natively – it should rather be the other way round! So on Tiger a function in Legacy Support works OK while on Leoard this function either exists natively or is provided by libgcc7 and is faulty?

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

Replying to ballapete:

nm outputs on Leoprad:

/opt/local/lib/libMacportsLegacySupport.a(getline.o):
         U _getdelim
00000000 T _getline
warning: nm: no name list

/opt/local/lib/libMacportsLegacySupport.a(macports_legacy_realpath.o):
00000000 T _macports_legacy_realpath
         U _malloc
         U _realpath$DARWIN_EXTSN
warning: nm: no name list

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

I have found a programme, built with GCC7 that crashes: dvisvgm. Invoked with '--help' it crashed, Mac OS X produced a crash report:

Process:         dvisvgm [85414]
Path:            /opt/local/bin/dvisvgm
Identifier:      dvisvgm
Version:         ??? (???)
Code Type:       PPC (Native)
Parent Process:  tcsh [617]

Interval Since Last Report:          310086 sec
Crashes Since Last Report:           16
Per-App Interval Since Last Report:  0 sec
Per-App Crashes Since Last Report:   1

Date/Time:       2019-12-06 16:09:22.180 +0100
OS Version:      Mac OS X 10.5.8 (9L31a)
Report Version:  6
Anonymous UUID:  B98EE308-F5B2-4632-9B82-ECEF2D42D0B9

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000000000002a
Crashed Thread:  0

Thread 0 Crashed:
0   libstdc++.6.dylib             	0x90120c80 bool std::has_facet<std::messages<char> >(std::locale const&) + 212
1   libstdc++.6.dylib             	0x9012475c std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_int<long>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const + 116
2   libstdc++.6.dylib             	0x90124878 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const + 32
3   libstdc++.6.dylib             	0x9012d804 std::basic_ostream<char, std::char_traits<char> >::operator<<(long) + 464
4   dvisvgm                       	0x00006604 CL::TypedOption<int, (CL::Option::ArgMode)2>::valueString() const + 48
5   dvisvgm                       	0x000078f0 CL::Option::helpline() const + 528
6   dvisvgm                       	0x00010024 CL::CommandLine::help(std::basic_ostream<char, std::char_traits<char> >&, int) const + 504
7   dvisvgm                       	0x00110868 main + 4080
8   dvisvgm                       	0x00005290 start + 64

Thread 0 crashed with PPC Thread State 32:
  srr0: 0x90120c80  srr1: 0x0000d030   dar: 0x0000002a dsisr: 0x40000000
    r0: 0x00000002    r1: 0xbfffda20    r2: 0x00000026    r3: 0xbfffda6f
    r4: 0x00000002    r5: 0x00000026    r6: 0x00001002    r7: 0x00000000
    r8: 0x01afc080    r9: 0xcccccccd   r10: 0x00a25030   r11: 0xbfffda70
   r12: 0x90f6a418   r13: 0xbfffddc8   r14: 0x0027fe34   r15: 0x01a01f08
   r16: 0xbfffdda8   r17: 0xbfffdda4   r18: 0xbfffddac   r19: 0xbfffddb0
   r20: 0x00000000   r21: 0x00000012   r22: 0x01a01e08   r23: 0x00000018
   r24: 0x00000020   r25: 0xa0046124   r26: 0xbfffdb00   r27: 0xbfffdc24
   r28: 0x00000000   r29: 0xbfffda60   r30: 0xbfffda40   r31: 0x000076e8
    cr: 0x42002444   xer: 0x00000002    lr: 0x90124760   ctr: 0x90f6a418
vrsave: 0x00000000

Binary Images:
    0x1000 -   0x27ffff +dvisvgm ??? (???) <94ae0d3ada78354f9c1e9b248b33ed61> /opt/local/bin/dvisvgm
  0x349000 -   0x3d4ffc +libfreetype.6.dylib ??? (???) <825b0d700ca5deb8790281382d574d3c> /opt/local/lib/libfreetype.6.dylib
  0x3eb000 -   0x3f6fff +libwoff2enc.1.0.2.dylib ??? (???) <720a81c4012432cdacc2caeba0de3317> /opt/local/lib/libwoff2enc.1.0.2.dylib
  0x3fb000 -   0x493fff +libbrotlienc.1.dylib ??? (???) <e5950ee1c0a927def23e2fb7e1aeaf42> /opt/local/lib/libbrotlienc.1.dylib
  0x498000 -   0x622f8b +libcrypto.1.1.dylib ??? (???) <e689b0b96b10ebb25b9ffcdaa5d032f4> /opt/local/lib/libcrypto.1.1.dylib
  0x69b000 -   0x6adffc +libz.1.dylib ??? (???) <df66d23576b060e5e0c66a68864cbe81> /opt/local/lib/libz.1.dylib
  0x6b1000 -   0x6b7ffb +libpotrace.0.dylib ??? (???) <f514e33bf13dbe3189fab1b6bd9af8f7> /opt/local/lib/libpotrace.0.dylib
  0x6ba000 -   0x6caffa +libkpathsea.6.dylib ??? (???) <c1a53e9fc9693fe2a856050320919ef8> /opt/local/lib/libkpathsea.6.dylib
  0x6d1000 -   0x7ebfff +libstdc++.6.dylib ??? (???) <d604f3c7880a3b6293951df851672ac6> /opt/local/lib/libgcc/libstdc++.6.dylib
  0x861000 -   0x86dffb +libgcc_s.1.dylib ??? (???) <b4f503d77eb93a13b1c842f92d9db30d> /opt/local/lib/libgcc/libgcc_s.1.dylib
  0x870000 -   0x87eff3 +libbz2.1.0.dylib ??? (???) <c5f0db894edcdfc575c0b14f9fb7713c> /opt/local/lib/libbz2.1.0.dylib
  0x882000 -   0x8a8fff +libpng16.16.dylib ??? (???) <dbda76b6e64af7bfbc6a30926b930d6b> /opt/local/lib/libpng16.16.dylib
  0x8b0000 -   0x8b2fff +libwoff2common.1.0.2.dylib ??? (???) <3eb11829e3083cab987ef9a80abff94e> /opt/local/lib/libwoff2common.1.0.2.dylib
  0x8b5000 -   0x8d4ffc +libbrotlicommon.1.dylib ??? (???) <bd514679e82b4bca7dbba20648146854> /opt/local/lib/libbrotlicommon.1.dylib
  0x8d7000 -   0x918fff +libXt.6.dylib ??? (???) <0e4c8450923bc5cb4b5e22ba9badb754> /opt/local/lib/libXt.6.dylib
  0x92a000 -   0x92fffc +libSM.6.dylib ??? (???) <61ffb3ab2f49e392ff241c2fe201245c> /opt/local/lib/libSM.6.dylib
  0x933000 -   0x942fff +libICE.6.dylib ??? (???) <dccc30a00b4dfaacf9939148ffb09f54> /opt/local/lib/libICE.6.dylib
  0x94a000 -   0x957fff +libXext.6.dylib ??? (???) <317de74a6ce6dcc2179f79824fc1b0fb> /opt/local/lib/libXext.6.dylib
  0x95d000 -   0x9c1ffb +libtiff.5.dylib ??? (???) <529daa14ddef6858cbbfd6b213327573> /opt/local/lib/libtiff.5.dylib
  0x9cf000 -   0x9e4fff +libjbig2dec.0.dylib ??? (???) <b37ed9684b62887579fbdd14db918204> /opt/local/lib/libjbig2dec.0.dylib
  0x9e9000 -   0xa15ff9 +libjpeg.9.dylib ??? (???) <d86af374f5fac685fe5fe8d0e5692a8c> /opt/local/lib/libjpeg.9.dylib
  0xa1c000 -   0xa1dfff +libpaper.1.dylib ??? (???) <5bfadf7ee8a73aaa6363f031a12722af> /opt/local/lib/libpaper.1.dylib
  0xa20000 -   0xa21ffc +libXau.6.dylib ??? (???) <a118d7ccfea794eabcc92baabe2332b7> /opt/local/lib/libXau.6.dylib
  0xadc000 -   0xf26ff7 +libgs.9.50.dylib ??? (???) <06ab157cc5aa5192b36935e61572614e> /opt/local/lib/libgs.9.50.dylib
 0x15b8000 -  0x16b3fff +libX11.6.dylib ??? (???) <5937d1398d12a4d65a09664412be61fd> /opt/local/lib/libX11.6.dylib
 0x16d1000 -  0x1710fff +liblcms2.2.dylib ??? (???) <24c4bfeedb411fe388f8fb0383207739> /opt/local/lib/liblcms2.2.dylib
 0x1721000 -  0x1819fff +libiconv.2.dylib ??? (???) <15d53a8b7ea70a6c1b9fbe0b02655e5b> /opt/local/lib/libiconv.2.dylib
 0x1825000 -  0x1853ffe +libidn.12.dylib ??? (???) <ba1d74f11882513148edb141af01d003> /opt/local/lib/libidn.12.dylib
 0x1857000 -  0x188cfff +libfontconfig.1.dylib ??? (???) <562f58c6b5fa86690d26775f8b85a1ef> /opt/local/lib/libfontconfig.1.dylib
 0x1897000 -  0x18abffe +libxcb.1.dylib ??? (???) <a398f73e4fad5d47bf0403509f45b134> /opt/local/lib/libxcb.1.dylib
 0x18b9000 -  0x18bcfff +libXdmcp.6.dylib ??? (???) <123a764e210413abeb6972d40ea119dd> /opt/local/lib/libXdmcp.6.dylib
 0x18bf000 -  0x1933fff +libzstd.1.dylib ??? (???) <251a69d4a129d3bf4837f18aaed10970> /opt/local/lib/libzstd.1.dylib
 0x193e000 -  0x195effd +liblzma.5.dylib ??? (???) <639246e81689aa862460339cb27b2d20> /opt/local/lib/liblzma.5.dylib
 0x1964000 -  0x196dfff +libintl.8.dylib ??? (???) <86cfa05c9e222e7291c13894d9e0698b> /opt/local/lib/libintl.8.dylib
 0x1971000 -  0x1995fff +libexpat.1.dylib ??? (???) <0483556cda9aa234e88b2ff8f34afb1b> /opt/local/lib/libexpat.1.dylib
 0x199c000 -  0x19a4ffb +libuuid.16.dylib ??? (???) <0be28af9a4ceb057e40665ac1acd5f78> /opt/local/lib/libuuid.16.dylib
0x8fe00000 - 0x8fe30c23  dyld 97.1 (???) <89a0055b0e7ea2db881b73c6e63bc774> /usr/lib/dyld
0x90102000 - 0x90169ffb  libstdc++.6.dylib ??? (???) <a4e9b10268b3ffac26d0296499b24e8e> /usr/lib/libstdc++.6.dylib
0x9060b000 - 0x90636ff7  libauto.dylib ??? (???) <a64d088b2d17e013b9ee5a08d3a20d33> /usr/lib/libauto.dylib
0x906aa000 - 0x906b5ffb  libgcc_s.1.dylib ??? (???) <ea47fd375407f162c76d14d64ba246cd> /usr/lib/libgcc_s.1.dylib
0x90f62000 - 0x91102fe3  libSystem.B.dylib ??? (???) <7dc28e19e1aac16b29cbd7c5d9ce9638> /usr/lib/libSystem.B.dylib
0x9442e000 - 0x94433ff6  libmathCommon.A.dylib ??? (???) /usr/lib/system/libmathCommon.A.dylib
0x95b56000 - 0x95c9eff3  libicucore.A.dylib ??? (???) <bdab570d90979c4f601131d442f84720> /usr/lib/libicucore.A.dylib
0x9620b000 - 0x96330ff3  com.apple.CoreFoundation 6.5.7 (476.19) <dee0f0024f3bf976cfa0a0816e8aa338> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x964d7000 - 0x965bafff  libobjc.A.dylib ??? (???) <a1d4be2eed463c6799b6a1447fde72ba> /usr/lib/libobjc.A.dylib
0xfffec000 - 0xfffeffff  libobjc.A.dylib ??? (???) /usr/lib/libobjc.A.dylib
0xffff8000 - 0xffff9703  libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib
pete 249 /\ otool -L /opt/local/bin/dvisvgm
/opt/local/bin/dvisvgm:
	/opt/local/lib/libfreetype.6.dylib (compatibility version 24.0.0, current version 24.1.0)
	/opt/local/lib/libwoff2enc.1.0.2.dylib (compatibility version 1.0.2, current version 1.0.2)
	/opt/local/lib/libbrotlienc.1.dylib (compatibility version 1.0.0, current version 1.0.7)
	/opt/local/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/opt/local/lib/libpotrace.0.dylib (compatibility version 1.0.0, current version 1.6.0)
	/opt/local/lib/libgs.9.50.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/local/lib/libkpathsea.6.dylib (compatibility version 10.0.0, current version 10.1.0)
==>	/opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.24.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 830.0.0)
	/opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7)

vs.

pete 250 /\ otool -L /opt/local/bin/freshclam
/opt/local/bin/freshclam:
	/opt/local/lib/libclamav.9.dylib (compatibility version 10.0.0, current version 10.4.0)
	/opt/local/lib/libfreshclam.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
	/opt/local/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
	/opt/local/lib/libxml2.2.dylib (compatibility version 12.0.0, current version 12.10.0)
	/opt/local/lib/libclammspack.0.dylib (compatibility version 2.0.0, current version 2.0.0)
	/opt/local/lib/libpcre2-8.0.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/local/lib/libssl.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/opt/local/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/opt/local/lib/libjson-c.3.dylib (compatibility version 4.0.0, current version 4.1.0)
	/opt/local/lib/libltdl.7.dylib (compatibility version 11.0.0, current version 11.1.0)
	/opt/local/lib/libcharset.1.dylib (compatibility version 2.0.0, current version 2.0.0)
	/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 25.0.2)
	/opt/local/lib/libcurl.4.dylib (compatibility version 11.0.0, current version 11.0.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 26935.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 830.0.0)
	/opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7)

Possible culprit found?

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

There is a known issue with locale support and gcc on at least some MacOS versions -- that's all I can recall about it just now. Perhaps that is relevant...

Thread 0 Crashed:
0   libstdc++.6.dylib             	0x90120c80 bool std::has_facet<std::messages<char> >(std::locale const&) + 212
1   libstdc++.6.dylib             	0x9012475c std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_int<long>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const + 116
2   libstdc++.6.dylib             	0x90124878 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const + 32
3   libstdc++.6.dylib             	0x9012d804 std::basic_ostream<char, std::char_traits<char> >::operator<<(long) + 464

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

I tried to build source-highlight with GCC7 first and the GCC6. It encounters quite early, when trying to build .libs/libsource-highlight.4.dylib, a libstdc++ related error. (I am going to return to version @7.4.)

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

Replying to ballapete:

(I am going to return to version @7.4.)

bsdtar reported a problem when deactivating libgcc7 @7.5

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

Replying to ballapete:

I could reproduce it:

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000008fe0105c
Crashed Thread:  0

Dyld Error Message:
  Symbol not found: ___once_proxy
  Referenced from: /opt/local/lib/libicuuc.65.dylib
  Expected in: /usr/lib/libstdc++.6.dylib

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

This gcc7 7.5.0 upgrade is looking to be a problem. We may have to revert it, and then (hopefully not) rebuild everything that was built against libgcc7 7.5.0 until it is sorted out properly.

I try to be very careful about upgrading the core compiler parts. I run as much of the test suite as I can on all the systems that will be affected by the upgrade, and generally tend to hang back a long while before upgrading. Just because a new gcc version exists doesn't mean that we should upgrade to it, as recent events show.

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

This issue is a classic c++ standard lib mixup, exactly what we have always feared and tried our best to avoid on MacPorts.

Objects are being created using /usr/lib/libstdc++.dylib and then (in this case) attempt to be deleted by /opt/local/lib/libstdc++.dylib and they are not matching up, so errors are happening.

We've discussed this exact situation for years, but until now, it has not happened.

Solutions are tricky. Upstream is trying to see if they can tweak libgcc7 7.5.0 to not error out, like libgcc7 7.4.x did not error out. Maybe that might work. Dunno.

We can set the DYLD_LIBRARY_PATH to point to /opt/local/lib/libgcc/ and so software will look there first. That should work -- haven't tried it yet though.

You can set up a chroot environment, and run your software there -- good luck -- if you know how to do that, you're probably not trying to run libgcc7 on a 15 year old PowerMac.

Or -- get ready for it -- we can update the libgcc in /usr/lib to a current one, like the one from libgcc7 with some kind of installer that we supply (and maintain, and and and). I can hear the groans now.

We could, perhaps, get libc++ working on PowerMac, and use that -- it would, naturally, have no such interaction with /usr/lib/libstdc++.dylib and therefore problem solved.

So -- working on it. For now, libgcc7 7.4.x is magically immune, it appears, at least so far as we know, for now.

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

Summary: libgcc7 @7.5.0 does not bild on PPC Mac OS X 10.5.8, Leopard, because of internal compiler errorlibgcc7 @7.5.0 does not build on PPC Mac OS X 10.5.8, Leopard, because of internal compiler error

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

setting DYLD_LIBRARY_PATH to point to /opt/local/lib/libgcc/ does fix this error, so far. However, other issues are likely to crop up. We would need a 4-arch version of libgcc, for one...

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

A resolution is now needed: port installed a new version of isl and so gcc7 @7.4.0_3 and libgcc7 @7.4.0_3 are now unusable…

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

CMake @3.16.3 just built with gcc7 @7.5.0_1 using

/opt/local/bin/cmake:
	/opt/local/lib/libMacportsLegacySupport.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/libexpat.1.dylib (compatibility version 8.0.0, current version 8.11.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/opt/local/lib/libarchive.13.dylib (compatibility version 18.0.0, current version 18.1.0)
	/opt/local/lib/libcurl.4.dylib (compatibility version 11.0.0, current version 11.0.0)
	/opt/local/lib/libuv.1.dylib (compatibility version 2.0.0, current version 2.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0)
	/opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.24.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 830.0.0)
	/opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7)

responds with

Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>
  cmake [options] -S <path-to-source> -B <path-to-build>

Specify a source directory to (re-)generate a build system for it in the
current working directory.  Specify an existing build directory to
re-generate its build system.

Options
  -S <path-to-source>          = Explicitly specify a source directory.
  -B <path-to-build>           = Explicitly specify a build directory.
  -C <initial-cache>           = Pre-load a script to populate the cache.
  -D <var>[:<type>]=<value>    = Create or update a cmake cache entry.
  -U <globbing_expr>           = Remove matching entries from CMake cache.
  -G <generator-name>          = Specify a build system generator.
  -T <toolset-name>            = Specify toolset name if supported by
                                 generator.
  -A <platform-name>           = Specify platform name if supported by
                                 generator.
  -Wdev                        = Enable developer warnings.
  -Wno-dev                     = Suppress developer warnings.
  -Werror=dev                  = Make developer warnings errors.
  -Wno-error=dev               = Make developer warnings not errors.
  -Wdeprecated                 = Enable deprecation warnings.
  -Wno-deprecated              = Suppress deprecation warnings.
  -Werror=deprecated           = Make deprecated macro and function warnings
                                 errors.
  -Wno-error=deprecated        = Make deprecated macro and function warnings
                                 not errors.
  -E                           = CMake command mode.
  -L[A][H]                     = List non-advanced cached variables.
  --build <dir>                = Build a CMake-generated project binary tree.
  --install <dir>              = Install a CMake-generated project binary
                                 tree.
  --open <dir>                 = Open generated project in the associated
                                 application.
  -N                           = View mode only.
  -P <file>                    = Process script mode.
  --find-package               = Run in pkg-config like mode.
  --graphviz=[file]            = Generate graphviz of dependencies, see
                                 CMakeGraphVizOptions.cmake for more.
  --system-information [file]  = Dump information about this system.
  --log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE>
                               = Set the verbosity of messages from CMake
                                 files.  --loglevel is also accepted for
                                 backward compatibility reasons.
  --debug-trycompile           = Do not delete the try_compile build tree.
                                 Only useful on one try_compile at a time.
  --debug-output               = Put cmake in a debug mode.
  --trace                      = Put cmake in trace mode.
  --trace-expand               = Put cmake in trace mode with variable
                                 expansion.
  --trace-source=<file>        = Trace only this CMake file/module.  Multiple
                                 options allowed.
  --trace-redirect=<file>      = Redirect trace output to a file instead of
                                 stderr.
  --warn-uninitialized         = Warn about uninitialized values.
  --warn-unused-vars           = Warn about unused variables.
  --no-warn-unused-cli         = Don't warn about command line options.
  --check-system-vars          = Find problems with variable usage in system
                                 files.
  --help,-help,-usage,-h,-H,/? = Print usage information and exit.
  --version,-version,/V [<f>]  = Print version number and exit.
  --help-full [<f>]            = Print all help manuals and exit.
  --help-manual <man> [<f>]    = Print one help manual and exit.
  --help-manual-list [<f>]     = List help manuals available and exit.
  --help-command <cmd> [<f>]   = Print help for one command and exit.
  --help-command-list [<f>]    = List commands with help available and exit.
  --help-commands [<f>]        = Print cmake-commands manual and exit.
  --help-module <mod> [<f>]    = Print help for one module and exit.
  --help-module-list [<f>]     = List modules with help available and exit.
  --help-modules [<f>]         = Print cmake-modules manual and exit.
  --help-policy <cmp> [<f>]    = Print help for one policy and exit.
  --help-policy-list [<f>]     = List policies with help available and exit.
  --help-policies [<f>]        = Print cmake-policies manual and exit.
  --help-property <prop> [<f>] = Print help for one property and exit.
  --help-property-list [<f>]   = List properties with help available and
                                 exit.
  --help-properties [<f>]      = Print cmake-properties manual and exit.
  --help-variable var [<f>]    = Print help for one variable and exit.
  --help-variable-list [<f>]   = List variables with help available and exit.
  --help-variables [<f>]       = Print cmake-variables manual and exit.

Generators

The following generators are available on this platform (* marks default):
* Unix Makefiles               = Generates standard UNIX makefiles.
  Ninja                        = Generates build.ninja files.
  Xcode                        = Generate Xcode project files.
  CodeBlocks - Ninja           = Generates CodeBlocks project files.
  CodeBlocks - Unix Makefiles  = Generates CodeBlocks project files.
  CodeLite - Ninja             = Generates CodeLite project files.
  CodeLite - Unix Makefiles    = Generates CodeLite project files.
  Sublime Text 2 - Ninja       = Generates Sublime Text 2 project files.
  Sublime Text 2 - Unix Makefiles
                               = Generates Sublime Text 2 project files.
  Kate - Ninja                 = Generates Kate project files.
  Kate - Unix Makefiles        = Generates Kate project files.
  Eclipse CDT4 - Ninja         = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.

when asked for a bit of help. So gcc7 @7.5.0_1 might now be working fine…

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

Hah! Wouldn't it be nice if this problem just "went away"? (At least for now!). Let me see if that happened for me as well...

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

Replying to kencu:

Hah! Wouldn't it be nice if this problem just "went away"? (At least for now!). Let me see if that happened for me as well...

Well, it is already version _1 of the port. (Yeah, would be nice if it now just works. Could isl make the difference? Right now GCC 4.7 is being rebuilt, could be next week I can check a few more ports.)

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

For background, Iain Sandoe has been specifically working on this problem -- it has to do with the c++abi in libgcc7 not playing nicely with the one in /usr/lib/libgcc*.

Apparently, it is not simple to fix this -- libc++abi is too integrated into libgcc, I believe he said -- but he has hopes to do so.

If it is working now, it is just random good luck.

Iain's suggestion for a long-term fix is to consider having MacPorts supply an update to /usr/lib/libgcc* that interested users would install to update the system roots.

I have not tried to sell that to the MacPorts group, as I don't (at present) want to take that war on.

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

Perhaps I should re-open and rename this ticket (or open another ticket) with the issue we are currently following here (ABI compat issues with libgcc7) as the original ticket is in fact fixed.

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

Could be the reason why GCC 7.5 works is that libgcc7 is not yet upgraded…

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

on my system, it's still broken. I see libgcc7 was not revbumped. Perhaps it needs to be -- perhaps not? Have to check.

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

My story is: 7.5.0_1 was built and installed. I did not realise at once that _1 and re-activated 7.4. Then some programmes failed because isl was upgraded. So I tried to reactivate 7.5. But port did not want to proceed with libgcc7… (OK, my fault might have been that I asked port to upgrade libgcc7 while I should have re- activated it. Next time.)

And in this situation, with libgcc7 still outdated, my Leopard seems to work fine. (Right now the PowerBook G4 is upgrading in Tiger.)

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

First build on PPC Tiger led to a failure: comparison error. After some cleaning I tried to reorganise the ports, migrate to Python 3 based variants. This to led to upgrading GCC 6 first. So, in some days, I'll be able to retry with GCC 7

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

On PPC Tiger, Mac OS X 10.4.11, the GCC 7 upgrade is fine, no problems with upgraded versions of clamav or CMake.

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

I thought I would see if libgcc8 might save the day here, and upgraded my MacPorts installation to use that instead of libgcc7 as the main libgcc version on 10.5 PPC -- and it all builds fine, but no happiness as it does not solve the problem, and has the exact same error as libgcc7 7.5.0 has. So that's not a solution at present.

Sticking with libgcc7 7.4.x until who knows when. And, just for clarity, I haven't actually rebuilt libgcc7 7.4.x to make sure it rebuilds properly without this error.

It looks like 10.5 PPC is well and truly hosed for now, after the gcc7 7.5.0 update. Luckily I still had a libgcc 7.4.x to reactivate.

And you're right, this issue is not showing up on 10.4 PPC, for whatever reason.

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

I got brave, quite motivated from the upgrade of macOS High Sierra – it still promises to last 41 more minutes (44 after recalculation). So I activated libgcc7 @7.5.0_0. Again CMake failed to work and I reactivated libgcc7 @7.4.0_3 at once. During both changes I was informed that bsdtar had failed:

Dyld Error Message:
  Symbol not found: ___once_proxy
  Referenced from: /opt/local/lib/libicuuc.65.dylib
  Expected in: /usr/lib/libstdc++.6.dylib

Is this correct? Shouldn't it be using /opt/local/lib/libgcc/libstdc++.6.dylib? And when bsdtar (of libarchive) fails, couldn't this, an incomplete installation, be the cause for the libgcc7 @7.5.0_0 failure?

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

on my 10.5 PPC system, libicuuc is properly linked against /opt/local/lib/libgcc/libstdc++.6.dylib, as it must be, given it requires c++11.

$ otool -L /opt/local/lib/libicuuc.65.dylib
/opt/local/lib/libicuuc.65.dylib:
	/opt/local/lib/libicuuc.65.dylib (compatibility version 65.0.0, current version 65.1.0)
	/opt/local/lib/libicudata.65.dylib (compatibility version 65.0.0, current version 65.1.0)
	/opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.24.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 315.0.0)
	/opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7)

that is not the cause for the libgcc7 @7.5.0_0 failure, I"m afraid.

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

Replying to kencu: I get *almost* the same:

pete 234 /\ otool -L /opt/local/lib/libicuuc.65.dylib
/opt/local/lib/libicuuc.65.dylib:
	/opt/local/lib/libicuuc.65.dylib (compatibility version 65.0.0, current version 65.1.0)
	/opt/local/lib/libicudata.65.dylib (compatibility version 65.0.0, current version 65.1.0)
	/opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.24.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 830.0.0)  <===
	/opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7)

and these bsdtar errors. Is the MacPorts environment incorrectly set up?

Note: See TracTickets for help on using tickets.