gcc

Activity log for bug #2019160

Date Who What changed Old value New value Message
2023-05-11 00:49:32 Sergio Durigan Junior bug added bug
2023-05-11 00:49:37 Sergio Durigan Junior gcc-13 (Ubuntu): importance Undecided High
2023-05-11 00:50:00 Sergio Durigan Junior bug task added gcc-12 (Ubuntu)
2023-05-11 00:50:05 Sergio Durigan Junior gcc-12 (Ubuntu): importance Undecided High
2023-05-11 00:50:07 Sergio Durigan Junior gcc-12 (Ubuntu): assignee Sergio Durigan Junior (sergiodj)
2023-05-11 00:50:12 Sergio Durigan Junior tags server-todo
2023-05-11 00:50:24 Sergio Durigan Junior bug watch added https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109805
2023-05-11 00:50:24 Sergio Durigan Junior bug task added gcc
2023-05-11 00:51:04 Sergio Durigan Junior description In Ubuntu we use -fdebug-prefix-map to remap a package's build directory (which contains random stuff) into a predictable path under /usr/src. This is done in order to help debuginfod index the source code for our packages. Things work very well, but I found a weird corner case involving LTO. The affected package is vim. You can see the build logs for it here: https://launchpadlibrarian.net/665520301/buildlog_ubuntu-mantic-amd64.vim_2%3A9.0.1378-2ubuntu1_BUILDING.txt.gz As you can notice, we're using -fdebug-prefix-map and LTO for the build. The problem is that the resulting debuginfo doesn't have the remaped directory. I can replicate the issue locally, and at first I thought this was either bug #108464 or #87726, but after some digging I'm convinced it's something else. I've compiled gcc (GCC) 14.0.0 20230510 from the master branch (608e7f3ab47fe746279c552c3574147aa3d8ee76), and I still can reproduce the problem. A simple reproducer for the problem follows: $ echo 'int main(){}' > foo.c $ ~/gcc/install/bin/gcc -c foo.c -O2 -g -flto=auto -ffat-lto-objects -fdebug-prefix-map=`pwd`=/aaaaaaa -o foo $ ~/gcc/install/bin/gcc foo -flto=auto -ffat-lto-objects -o bar A workaround for this bug is to either stop using LTO or explicitly set -fdebug-prefix-map when linking the object. In Ubuntu we use -fdebug-prefix-map to remap a package's build directory (which contains random stuff) into a predictable path under /usr/src. This is done in order to help debuginfod index the source code for our packages. Things work very well, but I found a weird corner case involving LTO. The affected package is vim. You can see the build logs for it here: https://launchpadlibrarian.net/665520301/buildlog_ubuntu-mantic-amd64.vim_2%3A9.0.1378-2ubuntu1_BUILDING.txt.gz As you can notice, we're using -fdebug-prefix-map and LTO for the build. The problem is that the resulting debuginfo doesn't have the remaped directory. I can replicate the issue locally, and at first I thought this was either upstream bugs #108464 or #87726, but after some digging I'm convinced it's something else. I've compiled gcc (GCC) 14.0.0 20230510 from the master branch (608e7f3ab47fe746279c552c3574147aa3d8ee76), and I still can reproduce the problem. A simple reproducer for the problem follows: $ echo 'int main(){}' > foo.c $ ~/gcc/install/bin/gcc -c foo.c -O2 -g -flto=auto -ffat-lto-objects -fdebug-prefix-map=`pwd`=/aaaaaaa -o foo $ ~/gcc/install/bin/gcc foo -flto=auto -ffat-lto-objects -o bar A workaround for this bug is to either stop using LTO or explicitly set -fdebug-prefix-map when linking the object.
2023-05-11 00:52:32 Sergio Durigan Junior bug added subscriber Ubuntu Server
2023-05-11 06:00:04 Launchpad Janitor gcc-12 (Ubuntu): status New Confirmed
2023-05-11 06:00:04 Launchpad Janitor gcc-13 (Ubuntu): status New Confirmed
2023-05-11 10:19:01 Bug Watch Updater gcc: status Unknown New
2023-05-11 10:19:01 Bug Watch Updater gcc: importance Unknown Medium
2023-05-13 16:14:14 Bug Watch Updater gcc: status New In Progress
2023-09-27 15:35:49 Sergio Durigan Junior tags server-todo
2023-09-27 15:37:06 Sergio Durigan Junior gcc-12 (Ubuntu): assignee Sergio Durigan Junior (sergiodj)
2023-09-27 15:37:08 Sergio Durigan Junior gcc-13 (Ubuntu): assignee Sergio Durigan Junior (sergiodj)