On Jun 21, 2013, at 22:07, Dimitry Andric <d...@freebsd.org> wrote:
> On Jun 13, 2013, at 03:15, Michael Gmelin <free...@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

Attachment: databases__db5-rename-atomics-1.diff
Description: Binary data

_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to