On 2023-09-17 08:01, Jon Turney via Cygwin-apps wrote:
On 16/09/2023 15:17, Christian Franke via Cygwin wrote:
Found during tests of busybox package:
If the path of the top build directory contains a symlink and the project's
build scripts normalize pathnames, no debug info is created by cygport.
This is because options like
-fdebug-prefix-map=${B}=/usr/src/debug/${PF}
have no effect because ${B} contains a symlink but the compiler is run with
the real source path.
I think that there was some historical bug with gcc where a relative path for
the old path in this mapping wasn't correctly handled, which is why were using
an absolute path here at all.
So changing it to something like [1] (if that works), might be better.
[1]
https://github.com/jon-turney/cygport/commit/4175d456a9184c5cdebd8bfb4b5ba30583cedd66
Sidenote: we should probably also be using file-prefix-map, now we're on a gcc
which supports it.
The postinstall code then does not find any line number info with source path
/usr/src/debug/${PF}/...
Could be fixed easily in line 414 of /bin/cygport:
-declare -r top=$(cd ${_topdir}; pwd);
+declare -r top=$(cd ${_topdir}; /bin/pwd);
Can you explain why this makes a difference?
In cygport, pwd is a bash builtin defaulting to -L; /bin/pwd defaults to -P.
Both commands support both options and we might expect the same output.
It would be better to use builtin `pwd -P` if that produces the correct result.
An STC script which creates test dirs to demonstrate the issue and show the
alternative outputs would be nice so anyone can see.
No patch provided because I'm not sure whether this has other negative side
effects.
If this is the case, it possibly makes sense to print a warning if "$(pwd)" !=
"$(/bin/pwd)".
This is not unreasonable, and I would take a patch doing this, as there have
been places in cygport where there are bugs handling that in the past (and
probably still are some, since it's not something that gets tested often).
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry