Ticket #814 (closed bug: fixed)

Opened 13 years ago

Last modified 11 years ago

v39897 build failure on Mac OS 10.5.7

Reported by: stifynsemons Owned by:
Priority: normal Milestone:
Component: build Version: 1.3.0
Severity: medium Keywords: build MacOS
Cc: Language:
Patch status: Platform: mac

Description

Parrot currently fails to compile successfully on my MacBook running Mac OS 10.5.7, for various recent versions from a bit after the June release to ncluding 39897.

I've not compiled parrot in about a year on this machine, so this may be a user issue or a code issue, I do not know. It occurs

Details:

Transcript

make -C src/dynpmc cc -c -o dynlexpad.o -I/Users/stephensimmons/perl6/parrot/include -I/Users/stephensimmons/perl6/parrot/src/pmc -g -pipe -fno-common -no-cpp-precomp -Wdeclaration-after-statement -I/usr/local/include -pipe -fno-common -Wno-long-double -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -fvisibility=hidden -funit-at-a-time -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wvariadic-macros -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DDISABLE_GC_DEBUG=1 -DNDEBUG -O3 -I/opt/local/include -I/sw/include -DHAS_GETTEXT -Wno-shadow -DHAVE_COMPUTED_GOTO dynlexpad.c ./dynlexpad.pmc: In function ‘Parrot_DynLexPad_init_pmc’: ./dynlexpad.pmc:54: error: too few arguments to function ‘parrot_new_hash’ ./dynlexpad.pmc: In function ‘Parrot_DynLexPad_mark’: ./dynlexpad.pmc:206: warning: implicit declaration of function ‘Parrot_gc_mark_PObj_alive’ ./dynlexpad.pmc:206: warning: nested extern declaration of ‘Parrot_gc_mark_PObj_alive’ make[1]: *** [dynlexpad.o] Error 1 make: *** [dynpmc.dummy] Error 2

System

Intel platform (2.4GHz Intel Core 2 Duo) Mac OS X 10.5.7 perl: This is perl, v5.8.8 built for darwin-thread-multi-2level GCC: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465) make: GNU Make 3.81

Attachments

Configure.pl.output Download (5.7 KB) - added by stifynsemons 13 years ago.
gcc.version Download (507 bytes) - added by stifynsemons 13 years ago.
perl.version Download (3.1 KB) - added by stifynsemons 13 years ago.
parrot-debug.2.make Download (44.1 KB) - added by stifynsemons 13 years ago.
parrot-debug.configure Download (6.0 KB) - added by stifynsemons 13 years ago.
parrot-debug.make Download (44.1 KB) - added by stifynsemons 13 years ago.
r37651.configure.test Download (14.9 KB) - added by stifynsemons 13 years ago.

Change History

  Changed 13 years ago by coke

If this is an old checkout, I recommend either trying 'make realclean' first, or starting with a fresh checkout.

Can you give that a try and report back? Thanks.

  Changed 13 years ago by stifynsemons

I've kept my old directories (I think), but I checked out the June release in a clean area (through rakudo), tried it, and when it failed, updated it several times, trying each time. Then I checked it out again in a clean area and repeated the process.

I just tried the make realclean and rebuilt, with the same error status.

My last successful build was in August 2008, and was using Mac OS 5.6.6 at that point. I'm not sure if the upgrade changed the compiler, etc.

I looked at the code, and though I'm a not C programmer, the "too few arguments to function 'parrot_new_hash'" really doesn't seem like an architecture dependent problem, though I suppose it could be a compiler difference.

Stephen Simmons

  Changed 13 years ago by coke

What OS X version is 5.6.6 ?? Is that 10.5. something?

Can you provide the output of perl -V (inline is fine) and gcc -v (inline is fine), sw_vers (inline is fine) and capture the output from perl Configure.pl (along with whatever options you specified) as an attachment, and the build itself as an attachment?

Thanks.

Changed 13 years ago by stifynsemons

  Changed 13 years ago by stifynsemons

Uhm, that should be 10.5.6 not 5.6.6. I'm not sure how I came up with that.

sw_vers:
ProductName: Mac OS X
ProductVersion: 10.5.7
BuildVersion: 9J61

From the ticket (with better formatting, hopefully):

perl: This is perl, v5.8.8 built for darwin-thread-multi-2level GCC
GCC: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)
make: GNU Make 3.81

I've attached the configure output ... I'll re-download and run a clean build into a transcript later tonight

Stephen Simmons

Changed 13 years ago by stifynsemons

Changed 13 years ago by stifynsemons

follow-up: ↓ 6   Changed 13 years ago by stifynsemons

See attachments for gcc, perl detailed version info.

in reply to: ↑ 5   Changed 13 years ago by jkeenan

Replying to stifynsemons:

See attachments for gcc, perl detailed version info.

In your attachment, you report this problem during Configure.pl:

auto::readline -      Does your platform support readline...dyld: lazy symbol binding failed: Symbol not found: _rl_get_keymap
58	  Referenced from: /Volumes/perl6/parrot-debug2/./test_40578
59	  Expected in: dynamic lookup
60	
61	dyld: Symbol not found: _rl_get_keymap
62	  Referenced from: /Volumes/perl6/parrot-debug2/./test_40578
63	  Expected in: dynamic lookup
64	
65	.............done.

This, unfortunately, is a problem of long-standing; cf.  RT #52212. Could you see if this  patch attached to that ticket helps?

I don't, however, believe that the problem above explains your build problem in and of itself.

kid51

  Changed 13 years ago by doughera

I'm not sure what to make of this report since the failure mode in the attachment https://trac.parrot.org/parrot/attachment/ticket/814/parrot-debug.make is very different from the failure mode in the original report.

Assuming the failure mode in the attachment is the result of a fresh download and build, then the resulting error message is one I haven't seen before. (You should check your local man pages to make sure that error message isn't mentioned there.)

ranlib: can't write to output file (Result too large)

Unfortunately, I don't think this is something easily debugged remotely. You'll have to do some local detective work. I can think of several possibilities. Is there disk space to write the output? Is there disk space in your /tmp directory (or wherever ar stores its temporary files, perhaps affected by a TMPDIR environment variable)?

What happens if you try to execute the offending ar command by hand? What if you just try to run it on a small subset of the parrot object files? Perhaps with these clues in hand, you might be able to figure out what's gone wrong.

  Changed 13 years ago by stifynsemons

Sorry about that -- I had re-downloaded and re-ran in a new directory in the same relatively small disk-image (to make a more linux like filesystem) and ran out of space. I've fixed this space problem, re-run, and will shortly update the two attached files.

Stephen Simmons

Changed 13 years ago by stifynsemons

Changed 13 years ago by stifynsemons

Changed 13 years ago by stifynsemons

  Changed 13 years ago by stifynsemons

I played around with tracking down the version where the "problem" was introduced. 30669 was the last version I compiled last year, on 10.5.6, and it still compiles, so there isn't something particularly wrong with 10.5.7 per se. Note that it still has the configure warnings.

There appear to be multiple problems with the build; the last one, the dynlexpad error was introduced in 37650, and not present in 37649. The first one was present in 35000, but I haven't looked between 30669 and 35000.

I hope this helps. I will continue this tonight. I've saved the entire build output for each of these versions and if there is interest, I'll upload them on request.

30669: works with both 10.5.6 and 10.5.7

35000: BUS error at: (past dynlexpad)

parrot -o ../../runtime/parrot/library/PCT.pbc --output-pbc PCT.pir

37500: failed assertion (past dynlexpad)

parrot -o ../../runtime/parrot/library/PCT.pbc --output-pbc PCT.pir

37625: failed assertion (past dynlexpad)

parrot -o ../../runtime/parrot/library/PCT.pbc --output-pbc PCT.pir

37640: BUS error at: (past dynlexpad)

parrot -o ../../runtime/parrot/library/PCT.pbc --output-pbc PCT.pir

37648: BUS error at: (past dynlexpad)

parrot -o ../../runtime/parrot/library/PCT.pbc --output-pbc PCT.pir

37649: BUS error at: (past dynlexpad)

parrot -o ../../runtime/parrot/library/PCT.pbc --output-pbc PCT.pir

37650: dynlexpad error

37651: dynlexpad error

37652: files missing -- configure failed

37654: dynlexpad error

37656: dynlexpad error

37688: dynlexpad error

37750: dynlexpad error

38000: dynlexpad error

38500: dynlexpad error

  Changed 13 years ago by jkeenan

Could you post the configuration output from this:

perl Configure.pl --test --verbose-step=init::hints

No need to re-run make for this.

Thanks.

Changed 13 years ago by stifynsemons

  Changed 13 years ago by jkeenan

  • component changed from none to build

  Changed 12 years ago by chromatic

Can you still reproduce this, stifynsemons? If so, can you paste the contents of src/dynpmc/dynlexpad.c (if there's still a build error there)? I wonder if you have Parrot::Pmc2c::* modules installed somewhere in your Perl 5 @INC that get used instead of the versions in the source tree.

  Changed 11 years ago by coke

  • status changed from new to closed
  • resolution set to fixed

Hearing no response to the RFC from 10 months ago, closing ticket.

If you're still having trouble building on OS X, please open a new ticket.

Thanks!

Note: See TracTickets for help on using tickets.