This problem continues to prevent me from a complete run of 'make test' on Darwin.
Prior to the match committed in r26790, config/auto/gdbm.pm's runstep() method contained this code: $self->_handle_darwin_for_fink($conf, $osname, 'gdbm.h'); $conf->cc_gen('config/auto/gdbm/gdbm.in'); if ( $osname =~ /mswin32/i ) { if ( $cc =~ /^gcc/i ) { eval { $conf->cc_build( '', '-llibgdbm' ); }; } else { eval { $conf->cc_build( '', 'gdbm.lib' ); }; } } else { eval { $conf->cc_build( '', '-lgdbm' ); }; } In _handle_darwin_for_fink(), the Fink directory where gdbm was found was added to the 'linkflags' element of the Parrot::Configure object. Note that in the above code excerpt, linker arguments are provided to the various formulations of cc_build() -- but that method is simply a probe of the OS. It does not add anything to theh Parrot::Configure object. In r26790, the way auto::gdbm::runstep() functions was significantly altered. $self->_handle_darwin_for_fink($conf, $osname, 'gdbm.h'); _handle_mswin32($conf, $osname, $cc); $conf->cc_gen('config/auto/gdbm/gdbm.in'); eval { $conf->cc_build(); }; Note that now there is no differentiation in the way cc_build() either between win32 and other OSes, or, in the case of win32, between gcc and other C compilers. Now, if we examine _handle_mswin32(): sub _handle_mswin32 { my ($conf, $osname, $cc) = @_; if ( $osname =~ /mswin32/i ) { if ( $cc =~ /^gcc/i ) { $conf->data->add( ' ', libs => '-lgdbm.dll' ); } else { $conf->data->add( ' ', libs => 'libgdbm.lib' ); } } else { $conf->data->add( ' ', libs => '-lgdbm' ); } return 1; } ... we see something that looks similar to that found prior to r26790, but actually is quite different. Here, we are adding values to the string held in the 'libs' element of the P::C object, affecting not just the way cc_build() conducts its probes, but all subsequent compilation and build. When I compile with the above, config step auto::gdbm returns a 'yes' result and I get these results in 'myconfig': Linker and Libraries: ld='/usr/bin/g++', ldflags=' -L/usr/local/lib -L/Users/jimk/work/parrot/blib/lib -L/sw/lib', cc_ldflags='', libs='-lm -lgmp -lreadline -lgdbm -lcrypto' But when I then 'make' and then try to run 't/dynpmc/gdbmhash.t', the latter test file hangs going into test #3 and causes 'make test' to hang as well. Should I revert to a pre-26790 version of config/auto/gdbm.pm, I still get a 'yes' result, but '-lgdbm' is absent from the 'libs=' line -- but I can pass t/dynpmc/gdbmhash.t There may have been reasons why auto::gdbm had to be revised to work better on Windows. But the way it was revised has broken it on Darwin, at least where Fink was used to provide GDBM. kid51