[ 
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.

Reply via email to