[ https://issues.apache.org/jira/browse/STDCXX-1008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12628700#action_12628700 ]
Martin Sebor commented on STDCXX-1008: -------------------------------------- -------- Original Message -------- Subject: Re: CXX-DEV: ld error: Invalid dynamic relocation needed for read-only section Date: Thu, 4 Sep 2008 19:38:46 -0700 (PDT) From: Dennis Handly <dhandly AT cup DOT hp DOT com> To: <cxx-dev AT cxx DOT cup DOT hp DOT com>, <sebor AT roguewave DOT com> >From: Martin Sebor <sebor AT roguewave DOT com> >I'm getting the errors below while building a 64-bit shared library with >aCC A.06.16 and -ipo. The objects referenced in the error messages are >declared with internal linkage and thread-local. In a small case I wrote to duplicate it, it seems a linker bug. I.e. if you swap the two objects, it works. >Is this a limitation of TLS/IPO or a known problem? Martin A new problem. I filed QXCR1000848848: Invalid dynamic relocation needed for read-only section for TLS -ipo One workaround might be using [+tls|http://docs.hp.com/en/10946/options.htm#opt+tls]=static. _________________________________________________________________ To leave this mailing list, send mail to [EMAIL PROTECTED] with the message UNSUBSCRIBE cxx-dev _________________________________________________________________ > [HP aCC 6.16] -ipo: Invalid dynamic relocation error in domain_error.o and > iostore.o > ------------------------------------------------------------------------------------ > > Key: STDCXX-1008 > URL: https://issues.apache.org/jira/browse/STDCXX-1008 > Project: C++ Standard Library > Issue Type: Bug > Components: Build and Installation > Affects Versions: 4.2.1 > Environment: HP aCC 6.16 with the > [-ipo|http://docs.hp.com/en/10946/options.htm#opt-ipo] option > Reporter: Martin Sebor > Assignee: Martin Sebor > Priority: Minor > Fix For: 4.2.2 > > > Linking the library with HP aCC 6.16 with the > [-ipo|http://docs.hp.com/en/10946/options.htm#opt-ipo] option produces the > following linker errors: > {noformat} > aCC -AA +nostl -Wl,+s -mt +DD64 +O2 -ipo +Z -b +DD64 \ > assert.o atomic.o bitset.o catalog.o codecvt.o collate.o ctype.o > ctype_bits.o \ > domain_error.o exception.o export.o facet.o file.o instance.o > invalid_argument.o \ > ios.o ios_bits.o iostore.o iostream.o iso2022.o length_error.o limits.o > limits_bits.o \ > locale_bits.o locale_body.o locale_classic.o locale_combine.o > locale_core.o \ > locale_eq.o locale_global.o locale_name.o logic_error.o memattr.o > memory.o \ > messages.o mman.o num_get.o num_put.o once.o out_of_range.o > overflow_error.o \ > punct.o random.o range_error.o runtime_error.o setlocale.o string.o > strstream.o \ > strtol.o ti_collate.o ti_filebuf.o ti_insert_dbl.o ti_insert_int.o > ti_insert_ptr.o ti_ios.o \ > ti_istream.o ti_messages.o ti_money_get.o ti_money_put.o ti_moneypunct.o \ > ti_num_get.o ti_num_put.o ti_numpunct.o ti_ostream.o ti_podarray.o > ti_streambuf.o \ > ti_string.o ti_stringbuf.o ti_time_get.o ti_time_put.o ti_wcollate.o > ti_wfilebuf.o \ > ti_winsert_dbl.o ti_winsert_int.o ti_winsert_ptr.o ti_wios.o > ti_wistream.o \ > ti_wmessages.o ti_wmoney_get.o ti_wmoney_put.o ti_wmoneypunct.o \ > ti_wnum_get.o ti_wnum_put.o ti_wnumpunct.o ti_wostream.o ti_wstreambuf.o \ > ti_wstring.o ti_wstringbuf.o ti_wtime_get.o ti_wtime_put.o time_get.o > time_put.o \ > tmpbuf.o typeinfo.o underflow_error.o valarray.o vecbool.o version.o > wcodecvt.o \ > wctype.o -o libstd12D.sl.4.2.2 > "/amd/devco/sebor/stdcxx-4.2.x/src/collate.cpp", line 471, procedure > do_compare: > warning #20200-D: Potential null pointer dereference through return of call > to > __rw::__rw_get_facet_data is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/src/collate.cpp, line 974) > "/amd/devco/sebor/stdcxx-4.2.x/src/iso2022.cpp", line 775, procedure > __rw::__rw_eucjp_to_iso2022: warning #20200-D: Potential null pointer > dereference through esc is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/src/iso2022.cpp, line 677) > "/amd/devco/sebor/stdcxx-4.2.x/src/locale_combine.cpp", line 511, procedure > __rw::__rw_init_classic: warning #20200-D: Potential null pointer dereference > through sep is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/src/locale_combine.cpp, line 505) > "/amd/devco/sebor/stdcxx-4.2.x/src/locale_combine.cpp", line 533, procedure > __rw::__rw_init_classic: warning #20200-D: Potential null pointer dereference > through next is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/src/locale_combine.cpp, line 511) > "/amd/devco/sebor/stdcxx-4.2.x/src/iso2022.cpp", line 744, procedure > __rw::__rw_iso2022jp_do_out: warning #20200-D: Potential null pointer > dereference is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/src/iso2022.cpp, line 744) > "/amd/devco/sebor/stdcxx-4.2.x/src/file.cpp", line 521, procedure > ~basic_filebuf: warning #20200-D: Potential null pointer dereference through > __buf is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/include/fstream.cc, line 390) > "/amd/devco/sebor/stdcxx-4.2.x/include/loc/_money_put.cc", line 109, > procedure do_put: warning #20200-D: Potential null pointer dereference > through __pun1 is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/include/loc/_money_put.cc, line 96) > "/amd/devco/sebor/stdcxx-4.2.x/src/file.cpp", line 521, procedure seekpos: > warning #20200-D: Potential null pointer dereference through __buf is > detected (null definition:/amd/devco/sebor/stdcxx-4.2.x/include/fstream.cc, > line 390) > "/amd/devco/sebor/stdcxx-4.2.x/include/loc/_money_put.cc", line 109, > procedure do_put: warning #20200-D: Potential null pointer dereference > through __pun1 is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/include/loc/_money_put.cc, line 96) > "/amd/devco/sebor/stdcxx-4.2.x/src/time_put.cpp", line 2691, procedure > __rw::__rw_fmt_time: warning #20200-D: Potential null pointer dereference > through return of call to _C_get_data is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/include/loc/_facet.h, line 193) > "/amd/devco/sebor/stdcxx-4.2.x/src/time_put.cpp", line 2786, procedure > __rw::__rw_fmt_time: warning #20200-D: Potential null pointer dereference > through return of call to _C_get_data is detected (null > definition:/amd/devco/sebor/stdcxx-4.2.x/include/loc/_facet.h, line 193) > ld: Invalid dynamic relocation needed for read-only section, in input file > domain_error.o, for symbol > ____rw::__rw_what_buf___exception.cpp__262144_0140__ at offset 52 > ld: Invalid dynamic relocation needed for read-only section, in input file > domain_error.o, for symbol > ____rw::__rw_what_refcnt___exception.cpp__262144_0141__ at offset 142 > ld: Invalid dynamic relocation needed for read-only section, in input file > iostore.o, for symbol ____rw::__rw_buffer___tmpbuf.cpp__2981888_0002__ at > offset 242 > ld: Invalid dynamic relocation needed for read-only section, in input file > iostore.o, for symbol ____rw::__rw_buffer_busy___tmpbuf.cpp__2981888_0003__ > at offset 442 > ld: Invalid dynamic relocation needed for read-only section, in input file > iostore.o, for symbol ____rw::__rw_buffer___tmpbuf.cpp__2981888_0002__ at > offset 582 > ld: Invalid dynamic relocation needed for read-only section, in input file > iostore.o, for symbol ____rw::__rw_buffer_busy___tmpbuf.cpp__2981888_0003__ > at offset 622 > ld: Invalid dynamic relocation needed for read-only section, in input file > iostore.o, for symbol ____rw::__rw_buffer_busy___tmpbuf.cpp__2981888_0003__ > at offset b42 > ld: Invalid dynamic relocation needed for read-only section, in input file > iostore.o, for symbol ____rw::__rw_buffer___tmpbuf.cpp__2981888_0002__ at > offset 12 > ld: Invalid dynamic relocation needed for read-only section, in input file > iostore.o, for symbol ____rw::__rw_buffer_busy___tmpbuf.cpp__2981888_0003__ > at offset 112 > 9 errors. > gmake: *** [libstd12D.sl.4.2.2] Error 1 > {noformat} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.