Opened 5 years ago

Closed 2 months ago

#40090 closed defect (fixed)

log4cxx @0.10.0: Undefined local symbol L318

Reported by: peterhansgoldstein@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.2.0
Keywords: snowleopard haspatch Cc: ryandesign (Ryan Schmidt), mkae (Marko Käning)
Port: log4cxx


OS 10.6.8, XCode 3.2.6

Build fails, kicking out "Undefined local symbol L318"

Log file attached, but it's highly inscrutable to me.

Attachments (2)

main.log (261.0 KB) - added by peterhansgoldstein@… 5 years ago.
Log file for this build attempt
log4cxx-optflags.diff (394 bytes) - added by ryandesign (Ryan Schmidt) 5 years ago.
proposed patch

Download all attachments as: .zip

Change History (10)

Changed 5 years ago by peterhansgoldstein@…

Attachment: main.log added

Log file for this build attempt

comment:1 Changed 5 years ago by ryandesign (Ryan Schmidt)

Summary: ros-log4cxx Configure error - build failureros-log4cxx: Undefined local symbol L318

I don't believe we have a port called "ros-log4cxx" in the official MacPorts repository... Did you perhaps get this Portfile from somewhere else?

comment:2 in reply to:  1 Changed 5 years ago by ryandesign (Ryan Schmidt)

Replying to ryandesign@…:

Did you perhaps get this Portfile from somewhere else?

Maybe from a few years ago?

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

Cc: ryandesign@… added
Resolution: invalid
Status: newclosed

Or in fact recently. I've now found the ROS OS X MacPorts installation page, the ros-macports github repository, and the ros-log4cxx port inside it. This is not our bug, because this is not our port. Please report the problem to the ROS people.

comment:4 Changed 5 years ago by ryandesign (Ryan Schmidt)

Cc: mail@… added
Keywords: snowleopard haspatch added
Port: log4cxx added; ros-log4cxx removed
Resolution: invalid
Status: closedreopened
Summary: ros-log4cxx: Undefined local symbol L318log4cxx @0.10.0: Undefined local symbol L318

As it happens, I see the same problem with the log4cxx port that we do have. It happens on our Snow Leopard buildbot only, not on the newer buildbots. The Snow Leopard buildbot is the only one that uses gcc-4.2 as its default compiler, and I'm able to reproduce the problem on Mavericks if I use configure.compiler=apple-gcc-4.2 so it's some problem with old GCC. After some trial and error, I found that switching the optimization flags from -Os (the default as of MacPorts 2.2) back to -O2 (the default in previous versions of MacPorts) fixes it, so that seems the simplest fix.

Changed 5 years ago by ryandesign (Ryan Schmidt)

Attachment: log4cxx-optflags.diff added

proposed patch

comment:5 Changed 5 years ago by ryandesign (Ryan Schmidt)

Cc: mail@… removed
Owner: changed from macports-tickets@… to mail@…
Status: reopenednew

There are no occurrences of the string "L318" in the source code. My thought is that perhaps this is a compiler-generated symbol name; the name makes me think it might be this file's 318th compiler-generated label, such as might be needed for a switch statement, of which there are many in the last file mentioned in the log, properties.cpp. Perhaps there is something unusual about the switch statements in properties.cpp that makes gcc-4.2's optimizer unhappy; some qualities that come to mind are that there are multiple nested switch statements, and that one of them has case statements after the default case (usually the default case is the last one).

I did find an old gcc bug when compiling a large switch statement; the error message is different, but it wasn't solved until gcc 4.3.

comment:6 Changed 4 years ago by mf2k (Frank Schima)

Owner: changed from mail@… to macports-tickets@…

Port abandoned. See #43811.

comment:7 Changed 2 years ago by mkae (Marko Käning)

Cc: mkae added

comment:8 Changed 2 months ago by Ken <21211439+kencu@…>

Resolution: fixed
Status: newclosed

In 84b96c5d5982d60682aaac58319d1c0ef4a29c59/macports-ports (master):

log4cxx: blacklist gcc-4.2 on darwin 10

closes: #40090

Note: See TracTickets for help on using tickets.