Are ports supposed to build and run on 10-CURRENT?
Dimitry Andric
dim at FreeBSD.org
Fri Jun 21 22:27:58 UTC 2013
On Jun 21, 2013, at 22:07, Dimitry Andric <dim at freebsd.org> wrote:
> On Jun 13, 2013, at 03:15, Michael Gmelin <freebsd at grem.de> wrote:
...
>> - system clang + std=c++11 + system libc++: Build fails, due to
>> a dependency (databases/db5) not building with those flags. It looks
>> like a problem in libc++ to me, but I didn't have much time to
>> investigate. It might be one of those things that might just go away
>> after a while.
>
> No, db5 does not build because it is redefining a C++11 standard library
> identifier, atomic_init(). It should probably prefix all its internal
> defines with 'db_', to avoid collisions. The
> db-5.3.21/src/dbinc/atomic.h file is already patched by our port to
> avoid one such collision, but it is probably necessary to do this again
> for any other identifiers that are used either by C++, or are compiler
> builtins.
Attached is a diff to fix the db5 port, so it correctly builds with
CXXFLAGS?=-std=c++11 -stdlib=libc++. Matthias, could you please have a
look at it?
After db5 (compiled with libc++) was installed, I retried devel/ice
again, but the Slice/keyword test failed in exactly the same way. If
you comment out the "delete factoryTable" line in
cpp/src/Ice/FactoryTableInit.cpp, the Slice/keyword test does succeed.
Many other tests after that also go well, and the next failure I get
was:
*** running tests 39/83 in /usr/work/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Ice/udp
*** configuration: Default
*** test started: 06/22/13 00:20:11
starting server #1... ok
starting server #2... Traceback (most recent call last):
File "/usr/work/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Ice/udp/run.py", line 41, in <module>
serverProc.append(TestUtil.startServer(server, "%d" % i , adapter="McastTestAdapter"))
File "/usr/work/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line 1396, in startServer
return spawnServer(cmd, env = env, adapter = adapter, count = count, echo = echo,lang=config.lang,mx=config.mx)
File "/usr/work/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line 1131, in spawnServer
server.expect("%s ready\n" % adapter)
File "/usr/work/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line 394, in expect
raise e
Expect.TIMEOUT: timeout exceeded in match
pattern: "McastTestAdapter ready\n"
buffer: "ControlAdapter ready
Network.cpp:1701: Ice::SocketException:
socket exception: Address already in use
"
('test in /usr/work/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Ice/udp failed with exit status', 256)
Whatever the source of this problem is, it is not very likely that is
caused by a compiler or C++ library issue, but more likely some
unexpected API change in sockets.
-Dimitry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: databases__db5-rename-atomics-1.diff
Type: application/octet-stream
Size: 6041 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20130622/822a8e73/attachment.obj>
More information about the freebsd-ports
mailing list