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 jim@…, 14 years ago

Forgot to attach my e-mail address.

comment:2 by jim@…, 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 René Rivera, 14 years ago

Component: bjamsystem
Milestone: Boost 1.36.0To Be Determined
Owner: changed from René Rivera to Beman Dawes

comment:4 by jim@…, 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 Steven Watanabe, 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 Beman Dawes, 11 years ago

Resolution: worksforme
Status: newclosed

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

Note: See TracTickets for help on using tickets.