Opened 9 years ago
Closed 9 years ago
#48026 closed defect (invalid)
boost @ 1.58.0 filesystem.exists() function fails with g++ 5.1.0
Reported by: | chris.jonesey@… | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.3 |
Keywords: | Cc: | ||
Port: | boost |
Description (last modified by larryv (Lawrence Velázquez))
In the attached test case the filesystem.exists() function always returns false with g++ and works correctly with clang++.
% port -v MacPorts 2.3.3 % clang++ --version Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) Target: x86_64-apple-darwin14.1.0 Thread model: posix % g++ --version g++ (MacPorts gcc5 5.1.0_0) 5.1.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % ./test_filesystem.clang.macport_boost ./test_filesystem.clang.macport_boost The file './test_filesystem.clang.macport_boost' exists! % ./test_filesystem.gcc.macport_boost ./test_filesystem.gcc.macport_boost The file './test_filesystem.gcc.macport_boost' DOES NOT exist.
Attachments (1)
Change History (4)
Changed 9 years ago by chris.jonesey@…
Attachment: | test_filesystem.cc added |
---|
comment:1 Changed 9 years ago by chris.jonesey@…
Cc: | chris.jonesey@… added |
---|
comment:2 Changed 9 years ago by larryv (Lawrence Velázquez)
Cc: | chris.jonesey@… removed |
---|---|
Description: | modified (diff) |
Owner: | changed from macports-tickets@… to ryandesign@… |
comment:3 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → invalid |
---|---|
Status: | new → closed |
You cannot use more than one C++ library and share data between them.
You are using boost from MacPorts which (in OS X 10.9 and later) uses libc++, and are compiling your own program using a MacPorts build of FSF g++ which uses libstdc++, and are linking it with boost, and trying to share data with it.
You must compile your program using the same compiler used to compile boost: that is, on recent OS X, clang++.
An alternative is to compile your own version of boost, outside of MacPorts, using (MacPorts or other build of FSF) g++; then you must also compile your program linked with boost with (MacPorts or other build of FSF) g++.
Cc Me!