#34491: add dsymutil to post-destroot in gdb compatible compilers ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Reporter: sean.michael.farley@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.1.0 Resolution: fixed | Keywords: haspatch Port: apple-gcc40, apple-gcc42, llvm-gcc42, llvm-2.9, llvm-3.0, llvm-3.1, llvm-3.2, clang-2.9, clang-3.0, clang-3.1, clang-3.2, dragonegg-3.0, dragonegg-3.1, dragonegg-3.2, g95, gcc42, gcc43, gcc44, gcc45, gcc46, gcc47, gcc48 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Comment(by sean.michael.farley@…): Replying to [comment:14 jeremyhu@…]:
Yes, you can put debug symbols into the binary. It's also possible to ship them separately from a stripped binary.
I usually build debug versions like: {{{ clang -g3 -gdwarf-2 -O0 -c test.c clang -o test test.o }}}
test will have debug symbols in it.
That's only for statically linked libraries. The problem here is that gcc4X builds shared libraries and the only way to keep the debugging symbols are with .dSYM bundles. Since MacPorts is shipping gcc4X without the .dSYM debugging blows up for *any* executable. Using your example: {{{ $ gcc-mp-4.7 -g3 -gdwarf-2 -O0 -c test.c $ gcc-mp-4.7 -o test test.o }}} still produces the output: {{{ $ gdb ./test GNU gdb 6.3.50-20050815 (Apple version gdb-1752) (Sat Jan 28 03:02:46 UTC 2012) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...No symbol table is loaded. Use the "file" command. Breakpoint 1 (PetscError) pending. Reading symbols for shared libraries .. warning: Could not find object file "/Volumes/work/macports/var/macports/build/_Volumes_work_mports_dports_lang_gcc47/gcc47/work/build/x86_64 -apple-darwin11/libgcc/_muldi3_s.o" - no debug information available for "../../../gcc-4.7.0/libgcc/libgcc2.c". warning: Could not find object file "/Volumes/work/macports/var/macports/build/_Volumes_work_mports_dports_lang_gcc47/gcc47/work/build/x86_64 -apple-darwin11/libgcc/_negdi2_s.o" - no debug information available for "../../../gcc-4.7.0/libgcc/libgcc2.c". warning: Could not find object file "/Volumes/work/macports/var/macports/build/_Volumes_work_mports_dports_lang_gcc47/gcc47/work/build/x86_64 -apple-darwin11/libgcc/_lshrdi3_s.o" - no debug information available for "../../../gcc-4.7.0/libgcc/libgcc2.c". warning: Could not find object file "/Volumes/work/macports/var/macports/build/_Volumes_work_mports_dports_lang_gcc47/gcc47/work/build/x86_64 -apple-darwin11/libgcc/_ashldi3_s.o" - no debug information available for "../../../gcc-4.7.0/libgcc/libgcc2.c". }}} Full output and test.c are attached. -- Ticket URL: <https://trac.macports.org/ticket/34491#comment:16> MacPorts <http://www.macports.org/> Ports system for Mac OS