I verified the problem and the workaround on my own b106 machine. I think it only affects the C compiler, not C++. The syntax for working around it looks like this:
-Wl,-zld64=-S/ws/onnv-tools/SUNWspro/SS12/prod/lib/amd64/libldstab_ws.so -Wl,-zld32=-S/ws/onnv-tools/SUNWspro/SS12/prod/lib/libldstab_ws.so I've started a thread on s11-cbe at sun.com to discuss how to get ON builds to stop using stabs, and to try and get these options added to the default Makefiles in ON. If there are people and/or aliases that I should also work with, please let me know. --chris Charles Binford wrote: > Chris, thanks for your response. In answer to you're question about if > it is necessary to use the stabs debugging format - I've no clue. I'm > merely trying to build my project in an ON tree and this setting was > inhereted from the top level makefile. I'm on version 106 and here is > snippet of usr/src/Makefile.master: > > # > # Default debug format for Sun Studio 11 is dwarf, so force it to > # generate stabs. > # > DEBUGFORMAT= -xdebugformat=stabs > > # > # Flags used to build in debug mode for ctf generation. Bugs in the Devpro > # compilers currently prevent us from building with cc-emitted DWARF. > # > CTF_FLAGS_sparc = -g -Wc,-Qiselect-T1 $(C99MODE) $(CNOGLOBAL) > $(CDWARFSTR) > CTF_FLAGS_i386 = -g $(C99MODE) $(CNOGLOBAL) $(CDWARFSTR) > CTF_FLAGS = $(CTF_FLAGS_$(MACH)) $(DEBUGFORMAT) > > > I tried commenting out the DEBUGFORMAT line and my re-making my > application. It appeared to work find (including proper debug info so > dbx could see sources). > > Proper setting of these flags for ON is outside of my area of expertise > so I'm not sure if commenting out that line is the correct fix or not. > Are other developers working on the ON tree seeing this same issue? > > Charles Binford > > Chris Quenelle wrote: >> Is it necessary that you are still using the stabs debugging format? >> Eventually the compilers will stop accepting the -xdebugformat=stabs >> option. Removing it would probably make this problem go away. >> >> I think your problem is due to a linker change that I advocated. (6775062) >> I believed that Sun Studio 12 would not suffer from any problems, >> but it looks like I was wrong. I'm very sorry about that. >> You can test if your problem is related to 6775062 by adding >> this to your link line: >> -S /ws/onnv-tools/SUNWspro/SS12/prod/lib/libldstab_ws.so >> If you're building 32 and 64 bits with the same link line, then you'll need >> a longer incantation: >> -zld32=-S/ws/onnv-tools/SUNWspro/SS12/prod/lib/libldstab_ws.so >> -zld64=-S/ws/onnv-tools/SUNWspro/SS12/prod/lib/amd64/libldstab_ws.so >> (Use sparcv9 for amd64 if you're building on sparc) >> >> I thought those options were always passed by the compiler drivers >> in SS12, but I was wrong. There are often passed, but not always. >> I don't know how many teams are still using stabs, or if it's a requirement >> for them to keep using it. The stabs processing code in this library >> should never have been built into the linker, and if this problem requires >> fixing, I would prefer to see this fixed as a patch to the compilers. >> >> Can I get some feedback on how much of the Solaris org is still using stabs >> in their Nevada builds? >> >> --chris >> >> >> >>> Charles Binford Charles.Binford at Sun.COM >>> Fri Feb 6 10:17:31 PST 2009 >>> >>> I have test system that I jumpstarted to 106. When I build debug on >>> that machine I don't get any symbols. When I build the exact same thing >>> on a 105 machine debug symbols are there. Note that my build tools are >>> coming from the same nfs mount in both cases so only thing I can think >>> of that may be different are any locally linked dynamic libraries. >>> >>> I thought it was just some weirdness with my setup until I spoke with >>> another developer in my group who was having the same sort of issue with >>> build 107. >>> >>> Has anyone else seen this type of behavior? >>> >>> I give a detailed example below of it not working (i.e. no debug info in >>> executable). However, I tried it a simple "hello world" test program, >>> with only >>> >>> /ws/onnv-tools/onbld/bin/i386/cw -_cc -g prog.c >>> >>> and all worked fine on both machines. Yet my real code (below) doesn't >>> end up with debug info when built under 106. >>> >>> Example: >>> This is from the 105 based machine. >>> uwic-v40z-2$ rm pmhd_event_reader >>> uwic-v40z-2$ make > /cb/tmp/uwic 2>&1 >>> uwic-v40z-2$ dbx pmhd_event_reader >>> For information about new features see `help changes' >>> To remove this message, put `dbxenv suppress_startup_message 7.6' in >>> your .dbxrc >>> Reading pmhd_event_reader >>> Reading ld.so.1 >>> Reading libc.so.1 >>> Reading libxml2.so.2 >>> Reading libpthread.so.1 >>> Reading libz.so.1 >>> Reading libm.so.2 >>> Reading libsocket.so.1 >>> Reading libnsl.so.1 >>> (dbx) list >>> 964 char *user_rules = NULL; >>> 965 /* extern char *optarg; */ >>> 966 /* extern int optind, optopt; */ >>> 967 char *dmapi_ver_name; >>> 968 char *fmri = NULL; >>> 969 int interactive_flag = 0; >>> 970 char *pm; >>> 971 int8_t trace_level; >>> 972 int file_rules = 0; >>> 973 pm_imq_params_t imq_params; >>> (dbx) exit >>> uwic-v40z-2$ >>> >>> >>> Now from the 106 machine >>> vader-ks$ rm pmhd_event_reader >>> vader-ks$ make > /cb/tmp/vader 2>&1 >>> vader-ks$ dbx >>> For information about new features see `help changes' >>> To remove this message, put `dbxenv suppress_startup_message 7.6' in >>> your .dbxrc >>> (dbx) exit >>> vader-ks$ dbx pmhd_event_reader >>> For information about new features see `help changes' >>> To remove this message, put `dbxenv suppress_startup_message 7.6' in >>> your .dbxrc >>> Reading pmhd_event_reader >>> Reading ld.so.1 >>> Reading libc.so.1 >>> Reading libxml2.so.2 >>> Reading libpthread.so.1 >>> Reading libz.so.1 >>> Reading libm.so.2 >>> Reading libsocket.so.1 >>> Reading libnsl.so.1 >>> (dbx) list >>> dbx: warning: No source file >>> (dbx) exit >>> >>> >>> The actual compile from the two machines had identical options as shown >>> here: >>> vader-ks$ diff /cb/tmp/vader /cb/tmp/uwic >>> >>> >>> Finally the contents of the redirected output: >>> vader-ks$ cat /cb/tmp/vader >>> /ws/onnv-tools/onbld/bin/i386/cw -_cc -xspace -Xa -xildoff >>> -errtags=yes -errwarn=%all -erroff=E_EMPTY_TRANSLATION_UNIT >>> -erroff=E_STATEMENT_NOT_REACHED -xc99=%all -W0,-xglobalstatic -g >>> -xc99=%all -W0,-noglobal -_gcc=-fno-dwarf2-indirect-strings >>> -xdebugformat=stabs -DSOLARIS -DTEXT_DOMAIN=\"SUNW_OST_OSCMD\" >>> -D_TS_ERRNO -I/cb/admONumount/proto/root_i386/usr/include -DDEBUG >>> -I/cb/admONumount/usr/src/common/dmapi -I. -I../common >>> -I/cb/admONumount/usr/src/lib/hsm/include >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmdb/common -I/usr/include/pgsql >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmtrc/common >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmcfg/common >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmut/common >>> -I/cb/admONumount/usr/src/lib/hsm/libpm/common >>> -I/cb/admONumount/usr/src/lib/hsm/libpmapi/common >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmwl/common -I/usr/include/libxml2 >>> -I/hsm_tools/share/imq4.1/include >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmmms/common >>> -I/cb/admONumount/usr/src/common/mms/mms >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmmsg/common -Bdirect >>> -M/cb/admONumount/usr/src/common/mapfiles/common/map.noexstk >>> -M/cb/admONumount/usr/src/common/mapfiles/i386/map.pagealign >>> -M/cb/admONumount/usr/src/common/mapfiles/i386/map.noexdata pm_event.o >>> pm_imq.o pm_init.o pm_drools.o pm_db.o pm_scheduler.o pm_xml.o >>> pm_thread_pool.o pm_cred.o pm_hash.o pm_work.o pm_reaper.o pm_cli.o >>> pm_postproc.o pm_xmltxt_gen.o pm_xmltxt.o pm_finfo.o pm_release.o >>> pm_mailbox.o pm_scan.o pm_shutdown.o pm_user_rules.o pm_migrate.o -o >>> pmhd_event_reader -L/cb/admONumount/proto/root_i386/lib >>> -L/cb/admONumount/proto/root_i386/usr/lib -R/usr/lib/hsm >>> -R/opt/SUNWimq/lib -R/usr/sfw/lib >>> -L/cb/admONumount/proto/root_i386/usr/lib/hsm -L/opt/SUNWimq/lib/ -lc >>> -lhsmdb -lpm -lhsmcfg -lhsmtrc -lhsmut -lxml2 -luuid -lhsmwl -ldm >>> -lhsmmms -L/hsm_tools/share/imq4.1/lib -lmqcrt -lhsmmsg >>> + /ws/onnv-tools/SUNWspro/SS12/bin/cc -xspace -Xa -xildoff -errtags=yes >>> -errwarn=%all -erroff=E_EMPTY_TRANSLATION_UNIT >>> -erroff=E_STATEMENT_NOT_REACHED -xc99=%all -W0,-xglobalstatic -g >>> -xc99=%all -W0,-noglobal -xdebugformat=stabs -DSOLARIS >>> -DTEXT_DOMAIN="SUNW_OST_OSCMD"-D_TS_ERRNO >>> -I/cb/admONumount/proto/root_i386/usr/include -DDEBUG >>> -I/cb/admONumount/usr/src/common/dmapi -I. -I../common >>> -I/cb/admONumount/usr/src/lib/hsm/include >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmdb/common -I/usr/include/pgsql >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmtrc/common >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmcfg/common >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmut/common >>> -I/cb/admONumount/usr/src/lib/hsm/libpm/common >>> -I/cb/admONumount/usr/src/lib/hsm/libpmapi/common >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmwl/common -I/usr/include/libxml2 >>> -I/hsm_tools/share/imq4.1/include >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmmms/common >>> -I/cb/admONumount/usr/src/common/mms/mms >>> -I/cb/admONumount/usr/src/lib/hsm/libhsmmsg/common -Bdirect >>> -M/cb/admONumount/usr/src/common/mapfiles/common/map.noexstk >>> -M/cb/admONumount/usr/src/common/mapfiles/i386/map.pagealign >>> -M/cb/admONumount/usr/src/common/mapfiles/i386/map.noexdata pm_event.o >>> pm_imq.o pm_init.o pm_drools.o pm_db.o pm_scheduler.o pm_xml.o >>> pm_thread_pool.o pm_cred.o pm_hash.o pm_work.o pm_reaper.o pm_cli.o >>> pm_postproc.opm_xmltxt_gen.o pm_xmltxt.o pm_finfo.o pm_release.o >>> pm_mailbox.o pm_scan.o pm_shutdown.o pm_user_rules.o pm_migrate.o -o >>> pmhd_event_reader -L/cb/admONumount/proto/root_i386/lib >>> -L/cb/admONumount/proto/root_i386/usr/lib -R/usr/lib/hsm >>> -R/opt/SUNWimq/lib -R/usr/sfw/lib >>> -L/cb/admONumount/proto/root_i386/usr/lib/hsm -L/opt/SUNWimq/lib/ -lc >>> -lhsmdb -lpm -lhsmcfg -lhsmtrc -lhsmut -lxml2 -luuid -lhsmwl -ldm >>> -lhsmmms -L/hsm_tools/share/imq4.1/lib -lmqcrt -lhsmmsg >>> echo -L VERSION -o pmhd_event_reader pm_event.o pm_imq.o pm_init.o >>> pm_drools.o pm_db.o pm_scheduler.o pm_xml.o pm_thread_pool.o pm_cred.o >>> pm_hash.o pm_work.o pm_reaper.o pm_cli.o pm_postproc.o pm_xmltxt_gen.o >>> pm_xmltxt.o pm_finfo.o pm_release.o pm_mailbox.o pm_scan.o >>> pm_shutdown.o pm_user_rules.o pm_migrate.o >>> -L VERSION -o pmhd_event_reader pm_event.o pm_imq.o pm_init.o >>> pm_drools.o pm_db.o pm_scheduler.o pm_xml.o pm_thread_pool.o pm_cred.o >>> pm_hash.o pm_work.o pm_reaper.o pm_cli.o pm_postproc.o pm_xmltxt_gen.o >>> pm_xmltxt.o pm_finfo.o pm_release.o pm_mailbox.o pm_scan.o pm_shutdown.o >>> pm_user_rules.o pm_migrate.o >>> vader-ks$ >>> >> > _______________________________________________ > on-discuss mailing list > on-discuss at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/on-discuss
