[
https://issues.apache.org/jira/browse/XERCESC-2186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexey Roytman updated XERCESC-2186:
------------------------------------
Description:
When compiling xerces-c 3.2.2 on HP-UX 11.31 with HP-UX C++ compiler A.06.28,
there are undefined symbols in the shared library:
CXXLD PSVIWriter
fails because of some missing symbols.
nm ./src/.libs/libxerces-c.so | grep ArrayJanitor | c++filt | grep UNDEF
[5645] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::reset(unsigned char*,xercesc_3_2::MemoryManager*)
[13918] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::release()
[10852] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::ArrayJanitor(unsigned char*)(complete)
[4694] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::ArrayJanitor(unsigned char*,xercesc_3_2::MemoryManager*)(complete)
[10308] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::~ArrayJanitor()(complete)
[5344] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::reset(unsigned short*,xercesc_3_2::MemoryManager*)
[13909] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::release()
[10884] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::ArrayJanitor(unsigned short*)(complete)
[12717] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::ArrayJanitor(unsigned short*,xercesc_3_2::MemoryManager*)(complete)
[10227] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::~ArrayJanitor()(complete)
[5251] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::get() const
[8674] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::operator[](unsigned long) const
[3757] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::get() const
[8931] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::operator[](unsigned long) const
If I comment our these 2 lines in Janitor.hpp:
158 XERCES_TEMPLATE_EXTERN template class XMLUTIL_EXPORT ArrayJanitor<XMLByte>;
159 XERCES_TEMPLATE_EXTERN template class XMLUTIL_EXPORT ArrayJanitor<XMLCh>;
then the build on this environment passes successfully.
The xerces-c 3.2.1 was built on the same environment successfully.
was:
When compiling xerces-c 3.2.2 on HP-UX 11.31 with HP-UX C++ compiler A.06.28,
there are undefined symbols in the shared library:
CXXLD PSVIWriter
fails because of some missing symbols.
nm ./src/.libs/libxerces-c.so | grep ArrayJanitor | c++filt | grep UNDEF
[5645] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::reset(unsigned char*,xercesc_3_2::MemoryManager*)
[13918] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::release()
[10852] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::ArrayJanitor(unsigned char*)(complete)
[4694] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::ArrayJanitor(unsigned char*,xercesc_3_2::MemoryManager*)(complete)
[10308] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::~ArrayJanitor()(complete)
[5344] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::reset(unsigned short*,xercesc_3_2::MemoryManager*)
[13909] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::release()
[10884] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::ArrayJanitor(unsigned short*)(complete)
[12717] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::ArrayJanitor(unsigned short*,xercesc_3_2::MemoryManager*)(complete)
[10227] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::~ArrayJanitor()(complete)
[5251] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::get() const
[8674] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
char>::operator[](unsigned long) const
[3757] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::get() const
[8931] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
short>::operator[](unsigned long) const
The xerces-c 3.2.1 was built on the same environment successfully.
> undef symbols on HPUX for ArrayJanitor
> --------------------------------------
>
> Key: XERCESC-2186
> URL: https://issues.apache.org/jira/browse/XERCESC-2186
> Project: Xerces-C++
> Issue Type: Bug
> Components: Build
> Affects Versions: 3.2.2
> Environment: HP-UX <myhostname> B.11.31 U ia64
> aCC: HP C/aC++ B3910B A.06.28 [Nov 21 2013]
> Reporter: Alexey Roytman
> Priority: Major
>
> When compiling xerces-c 3.2.2 on HP-UX 11.31 with HP-UX C++ compiler A.06.28,
> there are undefined symbols in the shared library:
> CXXLD PSVIWriter
> fails because of some missing symbols.
> nm ./src/.libs/libxerces-c.so | grep ArrayJanitor | c++filt | grep UNDEF
> [5645] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> char>::reset(unsigned char*,xercesc_3_2::MemoryManager*)
> [13918] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> char>::release()
> [10852] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> char>::ArrayJanitor(unsigned char*)(complete)
> [4694] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> char>::ArrayJanitor(unsigned char*,xercesc_3_2::MemoryManager*)(complete)
> [10308] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> char>::~ArrayJanitor()(complete)
> [5344] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> short>::reset(unsigned short*,xercesc_3_2::MemoryManager*)
> [13909] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> short>::release()
> [10884] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> short>::ArrayJanitor(unsigned short*)(complete)
> [12717] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> short>::ArrayJanitor(unsigned short*,xercesc_3_2::MemoryManager*)(complete)
> [10227] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> short>::~ArrayJanitor()(complete)
> [5251] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> char>::get() const
> [8674] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> char>::operator[](unsigned long) const
> [3757] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> short>::get() const
> [8931] | 0| 0|FUNC |GLOB |0| UNDEF|xercesc_3_2::ArrayJanitor<unsigned
> short>::operator[](unsigned long) const
>
> If I comment our these 2 lines in Janitor.hpp:
> 158 XERCES_TEMPLATE_EXTERN template class XMLUTIL_EXPORT
> ArrayJanitor<XMLByte>;
> 159 XERCES_TEMPLATE_EXTERN template class XMLUTIL_EXPORT ArrayJanitor<XMLCh>;
> then the build on this environment passes successfully.
>
> The xerces-c 3.2.1 was built on the same environment successfully.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]