Opened 12 years ago

Last modified 12 months ago

#36026 closed defect

gcc46 problem after ld64 upgrade — at Version 3

Reported by: jwhowse4 Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: mww@…, mfeiri@…, jeremyhu@…
Port: ld64

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I am running Lion 10.7.4 and Xcode 4.4.1. After the recent upgrade of ld64 to 133.3 I received the following compile error using gcc46 on a piece of my own code.

ld: warning: ignoring file main_bst_ddkc_sup_tf.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (x86_64): main_bst_ddkc_sup_tf.o
ld: file is universal (2 slices) but does not contain a(n) x86_64 slice: /usr/lib/crt1.10.5.o for architecture x86_64
collect2: ld returned 1 exit status
make: *** [sup_tf_ddkc] Error 1

This same code had compiled prior to the ld64 update.

So I tried recompiling the gcc46 port and it failed leaving the attached log file. I then tried replacing the linker ld from the ld64 port with the apple linker from Xcode 4.4.1 and the gcc46 port compiled just fine. Furthermore this new gcc46 compiled my code without the above error.

Additionally since the ld64 port upgrade the pgplot port with the +gcc46 option has failed to compile leaving the attached log file.

In short I suspect there is something wrong with the current ld64 port, but I am not sure how to fix it. Any help would be appreciated.

Change History (5)

Changed 12 years ago by jwhowse4

Attachment: gcc46_main.log added

gcc46 failure log

Changed 12 years ago by jwhowse4

Attachment: pgplot_main.log added

pgplot failure log

comment:1 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

I then tried replacing the linker ld from the ld64 port with the apple linker from Xcode 4.4.1

Can you please tell me *precisely* what you did here since there is actually a lot more room for ambiguity in that statement than you realize.

What is the output of?

/path/to/ld -v

Where /path/to/ld is the "updated" ld that you replaced.

comment:2 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Also, can you please provide a reduced test case to show off the issue and attach the object file you are having trouble with?

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

Description: modified (diff)
Note: See TracTickets for help on using tickets.