New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #19107 (closed defect: fixed)

Opened 4 years ago

Last modified 4 years ago

poco 1.3.2 build failure

Reported by: astricker@… Owned by: nox@…
Priority: Normal Milestone:
Component: ports Version: 1.7.0
Keywords: Cc:
Port: poco

Description

The package fails to build with

make[1]: *** No rule to make target \
`/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.o',\
 needed by \
`/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_poco/work\
/poco-1.3.2/XML/obj/Darwin/i386/debug_shared/AbstractContainerNode.o'.  Stop.

(wrap to multiple lines by me, marked with \ at end of line)

Somehow the wrong dependency /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.o is generated.

I noticed that the patch provided in /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/poco/files/patch-rules-deps-universal.diff is not applied. This solve the wrong dependency problem, but directly leads to the next problem during linking of tests with CppUnit. Various symbols from CppUnit cannot be resolved, while a CppUnit library is found. (No idea if it's the one provided with poco distribution or the one I've installed with ports myself).

It seems that there is something messed up with this port.

Change History

comment:1 Changed 4 years ago by astricker@…

Note: I previously synced (port sync -d) and upgraded (port upgrade installed) macports. I also ran a cleanup for poco (port clean --all poco).

comment:2 Changed 4 years ago by astricker@…

System: Mac OS X 10.5.6, Xcode 3.1.2, i686-apple-darwin9-gcc-4.0.1

comment:3 Changed 4 years ago by macsforever2000@…

  • Cc nox@… removed
  • Owner changed from macports-tickets@… to nox@…

comment:4 Changed 4 years ago by nox@…

Please test again with poco 1.3.3p1.

comment:5 Changed 4 years ago by astricker@…

I did test with 1.3.3p1 now (Portfile from subversion trunk).

The dependency problem is fixed.

The linking failure with CppUnit still remains while linking poco-1.3.3p1-all/Foundation/testsuite/bin/Darwin/i386/testrunner:

Undefined symbols:
  "CppUnit::TestCase::assertNotNull(void const*, \
 std::basic_string<char, std::char_traits<char>, \
 std::allocator<char> > const&, \
 long, std::basic_string<char, std::char_traits<char>, \
 std::allocator<char> > const&)", \
 referenced from:
      ClassLoaderTest::testClassLoader2()       in ClassLoaderTest.o
      DynamicFactoryTest::testDynamicFactory()       in DynamicFactoryTest.o
      NotificationQueueTest::testWaitDequeue()       in NotificationQueueTest.o
      NotificationQueueTest::testQueueDequeueUrgent()       in NotificationQueueTest.o
      NotificationQueueTest::testQueueDequeue()       in NotificationQueueTest.o
      SharedLibraryTest::testSharedLibrary1()       in SharedLibraryTest.o
[... (7000 lines skipped)]

comment:6 Changed 4 years ago by astricker@…

Yeah, I found the link failure:

  1. I've installed the cppunit port. Those libraries resides in /opt/local/lib.
  2. poco comes with it's own CppUnit library (older/newer than macport one). This one gets compiled to $(LIBPATH)
  3. as $(LINKFLAGS) contains /opt/local/lib and comes before $(LIBRARY) (in build/rules/exec), the installed libcppunit from port is found first

I found a solution requiring a modification to build/config/Darwin. I prepend $(LIBPATH) to $(LINKFLAGS). This gives first priority to own libraries, then to other port libraries.

  • build/config/Darwin

    old new  
    4444CXXFLAGS        = -Wall -Wno-sign-compare -I/opt/local/include -O2 
    4545CXXFLAGS32      = 
    4646CXXFLAGS64      =  
    47 LINKFLAGS       = -L/opt/local/lib 
     47LINKFLAGS       = -L$(LIBPATH) -L/opt/local/lib 
    4848LINKFLAGS32     = 
    4949LINKFLAGS64     = 
    5050STATICOPT_CC    = 

Now poco builds successful.

comment:7 Changed 4 years ago by nox@…

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in r50102. Thanks for contributing.

comment:8 Changed 4 years ago by anonymous

  • Milestone Port Bugs deleted

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.