[Bug c++/86548] New: GCC could tmp file /tmp/ccDxn2Yd.ltrans0.ltrans.o could be based on the compiled file name

jg at jguk dot org gcc-bugzilla@gcc.gnu.org
Tue Jul 17 12:22:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86548

            Bug ID: 86548
           Summary: GCC could tmp file /tmp/ccDxn2Yd.ltrans0.ltrans.o
                    could be based on the compiled file name
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jg at jguk dot org
  Target Milestone: ---

It's pretty hard to work out which file this o file comes from. Could it
include the first file name in the tmp path to make it clearer where it came
from?  

Currently:
/tmp/ccDxn2Yd.ltrans0.ltrans.o

Expected:
/tmp/main.cpp.ccDxn2Yd.ltrans0.ltrans.o

Example below of what I see

jonny@asus:~/domains$ make
g++-8 -std=c++11 -g -ggdb -pthread -O0 -Werror -Wextra -Wshadow
-Wformat-nonliteral -Wall -Wnonnull -Wpedantic -fstack-protector-strong 
-Wdiv-by-zero -Wsign-conversion -Wnull-dereference -flto -Wno-nonnull-compare
-o proc main.cpp test_whois.cpp <snip file list>
/usr/bin/x86_64-linux-gnu-ld: Dwarf Error: Offset (1678049557) greater than or
equal to .debug_str size (5846).
/usr/bin/x86_64-linux-gnu-ld: Dwarf Error: Invalid abstract instance DIE ref.
/tmp/ccDxn2Yd.ltrans0.ltrans.o: In function
`process_whois(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, bool, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, domain_s&)':
<artificial>:(.text+0xd554): undefined reference to `get_err_whois(int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>&)'
<artificial>:(.text+0xd75b): undefined reference to `get_err_whois(int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>&)'
<artificial>:(.text+0xdbca): undefined reference to `get_err_whois(int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>&)'
/tmp/ccDxn2Yd.ltrans0.ltrans.o: In function
`get_whois(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, bool, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, whoisinfo&, bool&, bool,
bool, EWhois_t)':
<artificial>:(.text+0x20717): undefined reference to `get_err_whois(int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>&)'
/tmp/ccDxn2Yd.ltrans0.ltrans.o: In function `test_whois(bool)':
<artificial>:(.text+0x6e827): undefined reference to `get_err_whois(int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>&)'
collect2: error: ld returned 1 exit status
makefile:3: recipe for target 'all' failed
make: *** [all] Error 1


More information about the Gcc-bugs mailing list