#19107 closed defect (fixed)
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 (8)
comment:1 Changed 16 years ago by astricker@…
comment:2 Changed 16 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 16 years ago by mf2k (Frank Schima)
Cc: | nox@… removed |
---|---|
Owner: | changed from macports-tickets@… to nox@… |
comment:5 Changed 16 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 16 years ago by astricker@…
Yeah, I found the link failure:
- I've installed the cppunit port. Those libraries resides in
/opt/local/lib
. - poco comes with it's own CppUnit library (older/newer than macport one). This one gets compiled to $(LIBPATH)
- as $(LINKFLAGS) contains
/opt/local/lib
and comes before $(LIBRARY) (inbuild/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 44 44 CXXFLAGS = -Wall -Wno-sign-compare -I/opt/local/include -O2 45 45 CXXFLAGS32 = 46 46 CXXFLAGS64 = 47 LINKFLAGS = -L /opt/local/lib47 LINKFLAGS = -L$(LIBPATH) -L/opt/local/lib 48 48 LINKFLAGS32 = 49 49 LINKFLAGS64 = 50 50 STATICOPT_CC =
Now poco builds successful.
comment:7 Changed 16 years ago by nox@…
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in r50102. Thanks for contributing.
Note: I previously synced (port sync -d) and upgraded (port upgrade installed) macports. I also ran a cleanup for poco (port clean --all poco).