Opened 14 years ago
Closed 11 years ago
#2164 closed Bugs (worksforme)
locate_root wrong under CygWin
Reported by: | anonymous | Owned by: | Beman Dawes |
---|---|---|---|
Milestone: | To Be Determined | Component: | system |
Version: | Boost 1.35.0 | Severity: | Showstopper |
Keywords: | cygwin | Cc: |
Description
When running the regression tests under cygwin, I get:
locate_root: c:/tmp/boost_rt/boost/status/cygdrive/C/tmp/boost_rt/results
(After this it can't find any files.)
CygWin maps Win32 to unix file names as such:
cygwin: /cygdrive/C/tmp/boost_rt Win32: C:/tmp/boost_rt
As you can see from locate_root above, bjam has blended both, yielding an invalid directory under either.
This occurs even when I specify to run.py:
--bjam-options="--locate-root=/cygdrive/C/tmp/boost_rt/results"
I get this output (showing --locate-root being properly propagated):
# Starting tests ("/cygdrive/C/tmp/boost_rt/tools_bjam/bin.cygwinx86/bjam.exe" "-sBOOST_BUILD_PATH=/cygdrive/C/tmp/boost_rt:/cygdrive/C/tmp/boost_rt/tools_bb" "-sBOOST_ROOT=/cygdrive/C/tmp/boost_rt/boost" "--boost=/cygdrive/C/tmp/boost_rt/boost" "--boost-build=/cygdrive/C/tmp/boost_rt/tools_bb" "--debug-configuration" -l300 -d2 --dump-tests --locate-root=/cygdrive/C/tmp/boost_rt/results "--build-dir=/cygdrive/C/tmp/boost_rt/results" >>"/cygdrive/C/tmp/boost_rt/results/bjam.log" 2>&1)...
Change History (6)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
More research: the problem is in libboost_system-gcc34-1_36.a, used to build process_jam_log.exe. The fs::initial_path() call in process_jam_log.cpp's set_boost_root() returns the DOSish name.
CygWin's python interpreter uses UNIXish names, so any combination of things I try yields the UNIXish /cygdrive/C/tmp/boost_rt not being recognized as absolute by boost:filesystem.
I tried these flags in regression.py, just before "if self.debug_level > 0:"
if sys.platform == 'cygwin':
self.bjambuild_args += ' -DBOOST_POSIX_API=1' self.process_jam_logbuild_args += ' -sBOOST_POSIX_API=1' self.bjam_options += ' -sBOOST_POSIX_API=1'
All to no avail.
I'm not convinced I'm getting the BOOST_POSIX_API definition to libboost_system-gcc34-1_36.a, when process_jam_log.cpp is compiled.
comment:3 by , 14 years ago
Component: | bjam → system |
---|---|
Milestone: | Boost 1.36.0 → To Be Determined |
Owner: | changed from | to
comment:4 by , 14 years ago
This bug still present, though #2163 is fixed. bjam derails here:
# Getting test case results out of "/cygdrive/C/tmp/boost_rt/results/bjam.log"... boost_root: c:/tmp/boost_rt/boost locate_root: c:/tmp/boost_rt/boost/status/cygdrive/C/tmp/boost_rt/results *****Warning - can't open output file: c:/tmp/boost_rt/boost/status/cygdrive/C/tmp/boost_rt/results/rs/test/weighted_extended_p_square.test/gcc-3.4.4/debug/link-static/test_log.xml *****Warning - can't open output file: c:/tmp/boost_rt/boost/status/cygdrive/C/tmp/boost_rt/results/gcc-3.4.4/debug/link-static/test_log.xml ...
No results files subsequently found.
boost_root and locate_root should be /cygdrive/C/tmp/boost_rt/... not C:/tmp/boost_rt/.../cygdrive/C/tmp/...
comment:5 by , 14 years ago
Try
self.process_jam_log['build_args'] += ' define=BOOST_CYGWIN_PATH=1'
Beman, shouldn't BOOST_CYGWIN_PATH be used by default of cygwin?
comment:6 by , 11 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Closing inactive ticket. If the reported problem still exists, please reopen the ticket and supply a test case that clearly illuminates the problem.
Thanks,
--Beman
Forgot to attach my e-mail address.