I already responded to Isvaran with this:

-----

There's a bit of a trick with SUNW_cap section processing.  Typically ld(1)
arranges for this section to be the first in the file, and thus it exists
in the first page of the file.  ld.so.1 reads the first page of a file to
determine what the file is and provide some initial verification.

ld.so.1 is assuming the SUNW_cap is the first section without checking
(which is bad), and is thus accessing beyond the first page, and falling over.

SUNW_cap doesn't seem to be on the first page because you have a large
SUNW_dof section is front of it.  My assumption is that the Solaris 9
version of ld(1) isn't DTrace aware, and isn't placing the SUNW_dof section
where it typically resides, at the end of the text segment.  ld(1) became
DTrace aware with 5062921 (s10_63).  On s10 I'd expect the SUNW_dof section
to be placed a long way after the SUNW_cap section, right?

If you're going to embed dof data I think you need a newer ld(1), and I'm
not aware of this functionality being taken back to s9.

-----


Sriram Natarajan wrote:
> Hi
>  Any comments on this below question will be much appreciated.
> 
> Web Server is compiling our application on Solaris 8. However, with 
> Solaris 10 Update 5, we observe a crash and the ldd output of one of our 
> libraries return the following . Any help on what is the problem and how 
> to resolve this will be much appreciated.
> 
> Note : I am posting this question on my colleague - Isvaran 
> Krishnamurthy's behalf. We earlier posted this question within Sun alias 
> and we were redirected to this alias.
> 
> 
> ldd is reporting the following:
> lib/libmonitorjni.so: warning: hardware capability unsupported: 
> 0x8b5a0008  [ SEP  0x8b5a0000 ]
> 
> What does this mean? Due to this our application is dumping core with 
> the following stack:
> *fefdea78 hwcap_check (e3d309d0, e41e0000) + 3c
> fefcf257 elf_are_u (e3d309d0) + af
> fefccb5b are_u_this (e3d309d0, 35, e3d30438, e40904d8) + df
> fefcd608 file_open (0, feffa220, e40904d8, e40904d8, fca10aa8, 40000000) 
> + 28c
> fefcd823 find_path (feffa220, e40904d8, fca10aa8, 40000000, e3d3098c, 
> e3d309d0) + 133
> fefcdde5 load_so  (feffa220, 1c, e40904d8, fca10aa8, 40000000, 0) + 109
> fefce622 load_path (feffa220, 1c, e40904d8, fca10aa8, c01, 40000000) + 192
> fefce7e3 load_one (feffa220, 1c, e4090510, fca10aa8, c01, 40000000) + 6b
> fefd9919 dlmopen_core (feffa220, 8f31868, c01, fca10aa8, 0, 8000) + 18d
> fefd9b3b dlmopen_intn (feffa220, 8f31868, c01, fca10aa8, 0, 0) + 37
> fefd9c3f dlmopen_check (feffa220, 8f31868, c01, fca10aa8, e3d30b90) + c3
> fefd9d2b dlopen   (8f31868, 1) + 67
> *fc6d77db __1cCosIdll_load6Fpkcpci_pv_ (8f31868, e3d30c20, 400) + 23
> fc3ab375 JVM_LoadLibrary (8f31868) + 16d
> fbeadb6f Java_java_lang_ClassLoader_00024NativeLibrary_load (926bcf4, 
> e3d315e4, e3d315e0, f8e02f0d, e3d315b0, 0) + cb
> ...
> ...
> 
> 
> Isvaran Krishnamurthy wrote:
>> Hi,
>>
>> ldd is reporting the following:
>> lib/libmonitorjni.so: warning: hardware capability unsupported: 
>> 0x8b5a0008  [ SEP  0x8b5a0000 ]
>>
>> What does this mean? Due to this our application is dumping core with 
>> the following stack:
>> *fefdea78 hwcap_check (e3d309d0, e41e0000) + 3c
> 
> There's a bit of a trick with SUNW_cap section processing.  Typically ld(1)
> arranges for this section to be the first in the file, and thus it exists
> in the first page of the file.  ld.so.1 reads the first page of a file to
> determine what the file is and provide some initial verification.
> 
> ld.so.1 is assuming the SUNW_cap is the first section without checking
> (which is bad), and is thus accessing beyond the first page, and falling over.
> 
> SUNW_cap doesn't seem to be on the first page because you have a large
> SUNW_dof section is front of it.  My assumption is that the Solaris 9
> version of ld(1) isn't DTrace aware, and isn't placing the SUNW_dof section
> where it typically resides, at the end of the text segment.  ld(1) became
> DTrace aware with 5062921 (s10_63).  On s10 I'd expect the SUNW_dof section
> to be placed a long way after the SUNW_cap section, right?
> 
> If you're going to embed dof data I think you need a newer ld(1), and I'm
> not aware of this functionality being taken back to s9.
> 
> 
> 
> 
>> fefcf257 elf_are_u (e3d309d0) + af
>> fefccb5b are_u_this (e3d309d0, 35, e3d30438, e40904d8) + df
>> fefcd608 file_open (0, feffa220, e40904d8, e40904d8, fca10aa8, 40000000) 
>> + 28c
>> fefcd823 find_path (feffa220, e40904d8, fca10aa8, 40000000, e3d3098c, 
>> e3d309d0) + 133
>> fefcdde5 load_so  (feffa220, 1c, e40904d8, fca10aa8, 40000000, 0) + 109
>> fefce622 load_path (feffa220, 1c, e40904d8, fca10aa8, c01, 40000000) + 192
>> fefce7e3 load_one (feffa220, 1c, e4090510, fca10aa8, c01, 40000000) + 6b
>> fefd9919 dlmopen_core (feffa220, 8f31868, c01, fca10aa8, 0, 8000) + 18d
>> fefd9b3b dlmopen_intn (feffa220, 8f31868, c01, fca10aa8, 0, 0) + 37
>> fefd9c3f dlmopen_check (feffa220, 8f31868, c01, fca10aa8, e3d30b90) + c3
>> fefd9d2b dlopen   (8f31868, 1) + 67
>> *fc6d77db __1cCosIdll_load6Fpkcpci_pv_ (8f31868, e3d30c20, 400) + 23
>> fc3ab375 JVM_LoadLibrary (8f31868) + 16d
>> fbeadb6f Java_java_lang_ClassLoader_00024NativeLibrary_load (926bcf4, 
>> e3d315e4, e3d315e0, f8e02f0d, e3d315b0, 0) + cb
>> ...
>> ...
>> ..
>>
>> bash-3.00# ldd -e LD_DEBUG=cap,detail lib/libmonitorjni.so
>> 04353:
>> 04353: hardware capabilities - 0x15ff7  [ CX16  SSE3  SSE2  SSE  FXSR  
>> AMD_3DNowx  AMD_3DNow  AMD_MMX  MMX  CMOV  AMD_SYSC  CX8
>> 04353:
>> 04353:
>> 04353: configuration file=/var/ld/ld.config: unable to process file
>> 04353:
>> 04353:
>> ldd: lib/libmonitorjni.so: execution failed due to signal 11 (core dumped)
>> bash-3.00#
>>
>> bash-3.00# /usr/ccs/bin/elfdump lib/limonitorjni.so
>> ELF Header
>>   ei_magic:   { 0x7f, E, L, F }
>>   ei_class:   ELFCLASS32          ei_data:      ELFDATA2LSB
>>   e_machine:  EM_386              e_version:    EV_CURRENT
>>   e_type:     ET_DYN
>>   e_flags:                     0
>>   e_entry:                  0xb8  e_ehsize:     52  e_shstrndx:   29
>>   e_shoff:               0x2a7b8  e_shentsize:  40  e_shnum:      30
>>   e_phoff:                  0x34  e_phentsize:  32  e_phnum:       4
>>
>> Program Header[0]:
>>     p_vaddr:      0x1a3e4         p_flags:    [ PF_R ]
>>     p_paddr:      0               p_type:     [ PT_SUNWCAP ]
>>     p_filesz:     0x10            p_memsz:    0
>>     p_offset:     0x1a3e4         p_align:    0
>>
>> Program Header[1]:
>>     p_vaddr:      0               p_flags:    [ PF_X  PF_R ]
>>     p_paddr:      0               p_type:     [ PT_LOAD ]
>>     p_filesz:     0x22155         p_memsz:    0x22155
>>     p_offset:     0               p_align:    0x10000
>>
>> Program Header[2]:
>>     p_vaddr:      0x32158         p_flags:    [ PF_X  PF_W  PF_R ]
>>     p_paddr:      0               p_type:     [ PT_LOAD ]
>>     p_filesz:     0x1a00          p_memsz:    0x1a00
>>     p_offset:     0x22158         p_align:    0x10000
>>
>> Program Header[3]:
>>     p_vaddr:      0x32294         p_flags:    [ PF_X  PF_W  PF_R ]
>>     p_paddr:      0               p_type:     [ PT_DYNAMIC ]
>>     p_filesz:     0x150           p_memsz:    0
>>     p_offset:     0x22294         p_align:    0
>>
>> Section Header[1]:  sh_name: .SUNW_dof
>>     sh_addr:      0xb8            sh_flags:   [ SHF_ALLOC ]
>>     sh_size:      0x1a32c         sh_type:    [ SHT_SUNW_dof ]
>>     sh_offset:    0xb8            sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x8
>>
>> Section Header[2]:  sh_name: .SUNW_cap
>>     sh_addr:      0x1a3e4         sh_flags:   [ SHF_ALLOC ]
>>     sh_size:      0x10            sh_type:    [ SHT_SUNW_cap ]
>>     sh_offset:    0x1a3e4         sh_entsize: 0x8
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[3]:  sh_name: .hash
>>     sh_addr:      0x1a3f4         sh_flags:   [ SHF_ALLOC ]
>>     sh_size:      0x440           sh_type:    [ SHT_HASH ]
>>     sh_offset:    0x1a3f4         sh_entsize: 0x4
>>     sh_link:      4               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[4]:  sh_name: .dynsym
>>     sh_addr:      0x1a834         sh_flags:   [ SHF_ALLOC ]
>>     sh_size:      0x850           sh_type:    [ SHT_DYNSYM ]
>>     sh_offset:    0x1a834         sh_entsize: 0x10
>>     sh_link:      5               sh_info:    1
>>     sh_addralign: 0x4
>>
>> Section Header[5]:  sh_name: .dynstr
>>     sh_addr:      0x1b084         sh_flags:   [ SHF_ALLOC  SHF_STRINGS ]
>>     sh_size:      0x1c00          sh_type:    [ SHT_STRTAB ]
>>     sh_offset:    0x1b084         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Section Header[6]:  sh_name: .SUNW_version
>>     sh_addr:      0x1cc84         sh_flags:   [ SHF_ALLOC ]
>>     sh_size:      0x80            sh_type:    [ SHT_SUNW_verneed ]
>>     sh_offset:    0x1cc84         sh_entsize: 0
>>     sh_link:      5               sh_info:    4
>>     sh_addralign: 0x4
>>
>> Section Header[7]:  sh_name: .rel.got
>>     sh_addr:      0x1cd04         sh_flags:   [ SHF_ALLOC  SHF_INFO_LINK ]
>>     sh_size:      0x38            sh_type:    [ SHT_REL ]
>>     sh_offset:    0x1cd04         sh_entsize: 0x8
>>     sh_link:      4               sh_info:    18
>>     sh_addralign: 0x4
>>
>> Section Header[8]:  sh_name: .rel.ex_shared
>>     sh_addr:      0x1cd3c         sh_flags:   [ SHF_ALLOC  SHF_INFO_LINK ]
>>     sh_size:      0x60            sh_type:    [ SHT_REL ]
>>     sh_offset:    0x1cd3c         sh_entsize: 0x8
>>     sh_link:      4               sh_info:    20
>>     sh_addralign: 0x4
>>
>> Section Header[9]:  sh_name: .rel.cpp_finidata
>>     sh_addr:      0x1cd9c         sh_flags:   [ SHF_ALLOC  SHF_INFO_LINK ]
>>     sh_size:      0x18            sh_type:    [ SHT_REL ]
>>     sh_offset:    0x1cd9c         sh_entsize: 0x8
>>     sh_link:      4               sh_info:    21
>>     sh_addralign: 0x4
>>
>> Section Header[10]:  sh_name: .rel.data
>>     sh_addr:      0x1cdb4         sh_flags:   [ SHF_ALLOC  SHF_INFO_LINK ]
>>     sh_size:      0x10            sh_type:    [ SHT_REL ]
>>     sh_offset:    0x1cdb4         sh_entsize: 0x8
>>     sh_link:      4               sh_info:    23
>>     sh_addralign: 0x4
>>
>> Section Header[11]:  sh_name: .rel.plt
>>     sh_addr:      0x1cdc4         sh_flags:   [ SHF_ALLOC  SHF_INFO_LINK ]
>>     sh_size:      0x228           sh_type:    [ SHT_REL ]
>>     sh_offset:    0x1cdc4         sh_entsize: 0x8
>>     sh_link:      4               sh_info:    12
>>     sh_addralign: 0x4
>>
>> Section Header[12]:  sh_name: .plt
>>     sh_addr:      0x1cfec         sh_flags:   [ SHF_ALLOC  SHF_EXECINSTR ]
>>     sh_size:      0x460           sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x1cfec         sh_entsize: 0x10
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[13]:  sh_name: .text
>>     sh_addr:      0x1d44c         sh_flags:   [ SHF_ALLOC  SHF_EXECINSTR ]
>>     sh_size:      0x49aa          sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x1d44c         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[14]:  sh_name: .init
>>     sh_addr:      0x21df8         sh_flags:   [ SHF_ALLOC  SHF_EXECINSTR ]
>>     sh_size:      0xbe            sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x21df8         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[15]:  sh_name: .fini
>>     sh_addr:      0x21eb8         sh_flags:   [ SHF_ALLOC  SHF_EXECINSTR ]
>>     sh_size:      0x65            sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x21eb8         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[16]:  sh_name: .rodata
>>     sh_addr:      0x21f20         sh_flags:   [ SHF_ALLOC ]
>>     sh_size:      0x1f1           sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x21f20         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x8
>>
>> Section Header[17]:  sh_name: .rodata1
>>     sh_addr:      0x22111         sh_flags:   [ SHF_ALLOC ]
>>     sh_size:      0x44            sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x22111         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Section Header[18]:  sh_name: .got
>>     sh_addr:      0x32158         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0x13c           sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x22158         sh_entsize: 0x4
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[19]:  sh_name: .dynamic
>>     sh_addr:      0x32294         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0x150           sh_type:    [ SHT_DYNAMIC ]
>>     sh_offset:    0x22294         sh_entsize: 0x8
>>     sh_link:      5               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[20]:  sh_name: .ex_shared
>>     sh_addr:      0x323e4         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0x38            sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x223e4         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[21]:  sh_name: .cpp_finidata
>>     sh_addr:      0x3241c         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0xc             sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x2241c         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[22]:  sh_name: .exception_ranges
>>     sh_addr:      0x32428         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0x1724          sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x22428         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Section Header[23]:  sh_name: .data
>>     sh_addr:      0x33b4c         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0xc             sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x23b4c         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x4
>>
>> Section Header[24]:  sh_name: .bssf
>>     sh_addr:      0x33b58         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0               sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x23b58         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Section Header[25]:  sh_name: .bss
>>     sh_addr:      0x33b58         sh_flags:   [ SHF_WRITE  SHF_ALLOC ]
>>     sh_size:      0               sh_type:    [ SHT_NOBITS ]
>>     sh_offset:    0x23b58         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Section Header[26]:  sh_name: .symtab
>>     sh_addr:      0               sh_flags:   0
>>     sh_size:      0xc00           sh_type:    [ SHT_SYMTAB ]
>>     sh_offset:    0x23b58         sh_entsize: 0x10
>>     sh_link:      27              sh_info:    60
>>     sh_addralign: 0x4
>>
>> Section Header[27]:  sh_name: .strtab
>>     sh_addr:      0               sh_flags:   [ SHF_STRINGS ]
>>     sh_size:      0x1d52          sh_type:    [ SHT_STRTAB ]
>>     sh_offset:    0x24758         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Section Header[28]:  sh_name: .comment
>>     sh_addr:      0               sh_flags:   0
>>     sh_size:      0x4210          sh_type:    [ SHT_PROGBITS ]
>>     sh_offset:    0x264aa         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Section Header[29]:  sh_name: .shstrtab
>>     sh_addr:      0               sh_flags:   [ SHF_STRINGS ]
>>     sh_size:      0xfd            sh_type:    [ SHT_STRTAB ]
>>     sh_offset:    0x2a6ba         sh_entsize: 0
>>     sh_link:      0               sh_info:    0
>>     sh_addralign: 0x1
>>
>> Version Needed Section:  .SUNW_version
>>             file                        version
>>             libsupport.so               SUNWprivate
>>             libnspr4.so                 NSPR_4.0
>>             libCrun.so.1                SUNW_1.1
>>             libCstd.so.1                SUNW_1.1.1           [ WEAK ]
>>
>> Symbol Table Section:  .dynsym
>> ...
>> ...
>>
>> Hardware/Software Capabilities Section:  .SUNW_cap
>>      index  tag               value
>>        [0]  CA_SUNW_HW_1     0x1  [ FPU ]
>>
>> NOTE: The exact same binary (library) works on another s10u3 box which 
>> has exactly the same patch levels. Find attached the patch levels for 
>> both the s10u3 m/cs (showrev_s10u3_working.out and 
>> showrev_s10u3_notworking.out)
>>
>> The m/c details are as follows:
>>
>> bash-3.00# isainfo -v
>> 64-bit amd64 applications
>>         cx16 sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov 
>> amd_sysc
>>         cx8 tsc fpu
>> 32-bit i386 applications
>>         cx16 sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov 
>> amd_sysc
>>         cx8 tsc fpu
>> bash-3.00# uname -a
>> SunOS 000000000 5.10 Generic_118855-33 i86pc i386 i86pc
>> bash-3.00# cat /etc/release
>>                         Solaris 10 11/06 s10x_u3wos_10 X86
>>            Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
>>                         Use is subject to license terms.
>>                            Assembled 14 November 2006
>> bash-3.00#
>> bash-3.00# psrinfo -v
>> Status of virtual processor 0 as of: 04/30/2008 15:08:14
>>  on-line since 04/29/2008 16:09:10.
>>  The i386 processor operates at 2613 MHz,
>>        and has an i387 compatible floating point processor.
>> bash-3.00#
>>
>> I suspect there's some problem in the offsets but I am not sure.
>>
>> The stack is as follows:
>> =>[1] hwcap_check(0xe0784bd0, *0xe09a0000*), at 0xfefdea78
>>   [2] elf_are_u(0xe0784bd0), at 0xfefcf257
>>   [3] are_u_this(0xe0784bd0, 0x1e, 0xe0784638, 0xf5a100d8), at 0xfefccb5b
>>   [4] file_open(0x0, 0xfeffa220, 0xf5a100d8, 0xf5a100d8, 0xfc9f0418, 
>> 0x40000000, 0xe0784b8c, 0xe0784bd0), at 0xfefcd608
>>   [5] find_path(0xfeffa220, 0xf5a100d8, 0xfc9f0418, 0x40000000, 
>> 0xe0784b8c, 0xe0784bd0), at 0xfefcd823
>>   [6] load_so(0xfeffa220, 0x1c, 0xf5a100d8, 0xfc9f0418, 0x40000000, 0x0, 
>> 0xe0784ca0), at 0xfefcdde5
>>   [7] load_path(0xfeffa220, 0x1c, 0xf5a100d8, 0xfc9f0418, 0xc01, 
>> 0x40000000, 0xe0784cf4, 0x0, 0xe0784ca0), at 0xfefce622
>>   [8] load_one(0xfeffa220, 0x1c, 0xf5a10c98, 0xfc9f0418, 0xc01, 
>> 0x40000000, 0xe0784cf4), at 0xfefce7e3
>>   [9] dlmopen_core(0xfeffa220, 0x8259a68, 0xc01, 0xfc9f0418, 0x0, 
>> 0x8000), at 0xfefd9919
>>   [10] dlmopen_intn(0xfeffa220, 0x8259a68, 0xc01, 0xfc9f0418, 0x0, 0x0, 
>> 0xe0784d88), at 0xfefd9b3b
>>   [11] dlmopen_check(0xfeffa220, 0x8259a68, 0xc01, 0xfc9f0418, 
>> 0xe0784d88), at 0xfefd9c3f
>>   [12] _dlopen(0x8259a68, 0x1), at 0xfefd9d2b
>>   [13] os::dll_load(0x8259a68, 0xe0784e0c, 0x400), at 0xfc6c8060
>>   [14] JVM_LoadLibrary(0x8259a68), at 0xfc43753c
>>
>> Elf header structure pointer ehdr = (Ehdr *) is *0xe09a0000.*
>>>>> bash-3.00# /usr/ccs/bin/elfdump lib/limonitorjni.so
>>>>> ELF Header
>>>>>   ei_magic:   { 0x7f, E, L, F }
>>>>>   ei_class:   ELFCLASS32          ei_data:      ELFDATA2LSB
>>>>>   e_machine:  EM_386              e_version:    EV_CURRENT
>>>>>   e_type:     ET_DYN
>>>>>   e_flags:                     0
>>>>>   e_entry:                  0xb8  e_ehsize:     52  e_shstrndx:   29
>>>>>   e_shoff:               0x2a7b8  e_shentsize:  40  e_shnum:      30
>>>>>   *e_phoff:                  0x34*  e_phentsize:  32  e_phnum:       4
>> As per hwcap_check code it does phdr = ((char *)ehdr + e_phoff=0x34)
>>>>> Program Header[0]:
>>>>>     p_vaddr:      0x1a3e4         p_flags:    [ PF_R ]
>>>>>     p_paddr:      0               p_type:     [ PT_SUNWCAP ]
>>>>>     p_filesz:     0x10            p_memsz:    0
>>>>>     *p_offset:     0x1a3e4*         p_align:    0
>> Following with (if phdr->p_type == PT_SUNWCAP) caphdr = (Cap *) ((char 
>> *)ehdr + p_offset=0x1a3e4)
>> This value comes to 0xe09ba3e4.
>> (dbx) print (char *)0xe09a0000 + 0x1a3e4
>> dbx: warning: unknown language, 'c' assumed
>> *((char *) 0xe09a0000U)+0x1a3e4 = 0xe09ba3e4 "<bad address 0xe09ba3e4>"*
>> (dbx)
>>
>> The following is the build output for libmonitorjni.so (reference for 
>> compiler and linker flags used):
>>
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC      -mt  -KPIC 
>> -DBUILD_MONITORJNI_DLL   -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_REENTRANT  
>> -DDEBUG -D_DEBUG -DNSS_ENABLE_ECC -DUSE_JDK=1  -DNS_DOMESTIC 
>> -DNS_ENTERPRISE -DMCC_HTTPD -DNET_SSL -DSERVER_BUILD -DENCRYPT_PASSWORDS 
>> -DNSPR20 -DSPAPI20 -DPEER_SNMP -DOSVERSION=5010 
>> -DPLATFORM_SPECIFIC_STATS_ON -I../util -I../../include   
>> -I../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/support 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include/nspr  
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include/solaris 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/jni  -g 
>> -xs   -ptrSunOS5.9_i86pc_DBG.OBJ  -c \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/StatsBridgeJNI.o \
>>    \
>>    StatsBridgeJNI.cpp
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC      -mt  -KPIC 
>> -DBUILD_MONITORJNI_DLL   -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_REENTRANT  
>> -DDEBUG -D_DEBUG -DNSS_ENABLE_ECC -DUSE_JDK=1  -DNS_DOMESTIC 
>> -DNS_ENTERPRISE -DMCC_HTTPD -DNET_SSL -DSERVER_BUILD -DENCRYPT_PASSWORDS 
>> -DNSPR20 -DSPAPI20 -DPEER_SNMP -DOSVERSION=5010 
>> -DPLATFORM_SPECIFIC_STATS_ON -I../util -I../../include   
>> -I../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/support 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include/nspr  
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include/solaris 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/jni  -g 
>> -xs   -ptrSunOS5.9_i86pc_DBG.OBJ  -c \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/HeaderStatsJNI.o \
>>    \
>>    HeaderStatsJNI.cpp
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC      -mt  -KPIC 
>> -DBUILD_MONITORJNI_DLL   -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_REENTRANT  
>> -DDEBUG -D_DEBUG -DNSS_ENABLE_ECC -DUSE_JDK=1  -DNS_DOMESTIC 
>> -DNS_ENTERPRISE -DMCC_HTTPD -DNET_SSL -DSERVER_BUILD -DENCRYPT_PASSWORDS 
>> -DNSPR20 -DSPAPI20 -DPEER_SNMP -DOSVERSION=5010 
>> -DPLATFORM_SPECIFIC_STATS_ON -I../util -I../../include   
>> -I../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/support 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include/nspr  
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include/solaris 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/jni  -g 
>> -xs   -ptrSunOS5.9_i86pc_DBG.OBJ  -c \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/WebModuleStatsJNI.o \
>>    \
>>    WebModuleStatsJNI.cpp
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC      -mt  -KPIC 
>> -DBUILD_MONITORJNI_DLL   -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_REENTRANT  
>> -DDEBUG -D_DEBUG -DNSS_ENABLE_ECC -DUSE_JDK=1  -DNS_DOMESTIC 
>> -DNS_ENTERPRISE -DMCC_HTTPD -DNET_SSL -DSERVER_BUILD -DENCRYPT_PASSWORDS 
>> -DNSPR20 -DSPAPI20 -DPEER_SNMP -DOSVERSION=5010 
>> -DPLATFORM_SPECIFIC_STATS_ON -I../util -I../../include   
>> -I../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/support 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include/nspr  
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include/solaris 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/jni  -g 
>> -xs   -ptrSunOS5.9_i86pc_DBG.OBJ  -c \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/ProcessStatsJNI.o \
>>    \
>>    ProcessStatsJNI.cpp
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC      -mt  -KPIC 
>> -DBUILD_MONITORJNI_DLL   -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_REENTRANT  
>> -DDEBUG -D_DEBUG -DNSS_ENABLE_ECC -DUSE_JDK=1  -DNS_DOMESTIC 
>> -DNS_ENTERPRISE -DMCC_HTTPD -DNET_SSL -DSERVER_BUILD -DENCRYPT_PASSWORDS 
>> -DNSPR20 -DSPAPI20 -DPEER_SNMP -DOSVERSION=5010 
>> -DPLATFORM_SPECIFIC_STATS_ON -I../util -I../../include   
>> -I../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/support 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include/nspr  
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include/solaris 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/jni  -g 
>> -xs   -ptrSunOS5.9_i86pc_DBG.OBJ  -c \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/VSStatsJNI.o \
>>    \
>>    VSStatsJNI.cpp
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC      -mt  -KPIC 
>> -DBUILD_MONITORJNI_DLL   -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_REENTRANT  
>> -DDEBUG -D_DEBUG -DNSS_ENABLE_ECC -DUSE_JDK=1  -DNS_DOMESTIC 
>> -DNS_ENTERPRISE -DMCC_HTTPD -DNET_SSL -DSERVER_BUILD -DENCRYPT_PASSWORDS 
>> -DNSPR20 -DSPAPI20 -DPEER_SNMP -DOSVERSION=5010 
>> -DPLATFORM_SPECIFIC_STATS_ON -I../util -I../../include   
>> -I../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/support 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include/nspr  
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include/solaris 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/jni  -g 
>> -xs   -ptrSunOS5.9_i86pc_DBG.OBJ  -c \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/AdminStatsClient.o \
>>    \
>>    AdminStatsClient.cpp
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC      -mt  -KPIC 
>> -DBUILD_MONITORJNI_DLL   -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -D_REENTRANT  
>> -DDEBUG -D_DEBUG -DNSS_ENABLE_ECC -DUSE_JDK=1  -DNS_DOMESTIC 
>> -DNS_ENTERPRISE -DMCC_HTTPD -DNET_SSL -DSERVER_BUILD -DENCRYPT_PASSWORDS 
>> -DNSPR20 -DSPAPI20 -DPEER_SNMP -DOSVERSION=5010 
>> -DPLATFORM_SPECIFIC_STATS_ON -I../util -I../../include   
>> -I../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/support 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/include/nspr  
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include 
>> -I../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/include/solaris 
>> -I../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/include/jni  -g 
>> -xs   -ptrSunOS5.9_i86pc_DBG.OBJ  -c \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/SessReplicaStats.o \
>>    \
>>    SessReplicaStats.cpp
>> /usr/dist/share/sunstudio_i386,v11.0/SUNWspro/bin/CC  -G \
>>    \
>>    -o SunOS5.9_i86pc_DBG.OBJ/libmonitorjni.so \
>>    \
>>    SunOS5.9_i86pc_DBG.OBJ/StatsBridgeJNI.o 
>> SunOS5.9_i86pc_DBG.OBJ/HeaderStatsJNI.o 
>> SunOS5.9_i86pc_DBG.OBJ/WebModuleStatsJNI.o 
>> SunOS5.9_i86pc_DBG.OBJ/ProcessStatsJNI.o 
>> SunOS5.9_i86pc_DBG.OBJ/VSStatsJNI.o 
>> SunOS5.9_i86pc_DBG.OBJ/AdminStatsClient.o 
>> SunOS5.9_i86pc_DBG.OBJ/SessReplicaStats.o  \
>>                       -mt -norunpath 
>> -L../../httpd/src/SunOS5.9_i86pc_DBG.OBJ 
>> -L../util/SunOS5.9_i86pc_DBG.OBJ 
>> -L../../../../../../work/B1/SunOS5.9_i86pc_DBG.OBJ/lib 
>> -L../../../../../../internal/B1/SunOS5.9_i86pc_DBG.OBJ/lib 
>> -L/usr/dist/share/sunstudio_i386,v11.0/SUNWspro/lib 
>> -L../../../../../../external/jdk/SunOS5.9_i86pc_DBG.OBJ/jre/lib/i386/server 
>> -L../../../../../../external/security/SunOS5.9_i86pc_DBG.OBJ/lib    
>> -ptrSunOS5.9_i86pc_DBG.OBJ \
>>    -lsupport -lns-httpd40 -ladminjni -ladminutil  -ljvm -lplc4 -lplds4 
>> -lnspr4 -lpam -lgss -lpthread -lsocket -lnsl -ldl -lposix4 -lkstat 
>> -lCrun -lCstd -R 
>> \$ORIGIN:\$ORIGIN/../lib:\$ORIGIN/../../lib:"/usr/lib/mps/secv1:/usr/lib/mps:/usr/lib/mps/sasl2"
>>  
>>
>>
>> NOTE:
>> 1. libmonitorjni.so (that is not working) is built on a Solaris 9 x86 
>> box (Find attached the showrev -a output; showrev_notworking.out).
>>
>> bash-2.05$ uname -a
>> SunOS 0x0x0x0 5.9 Generic_118559-39 i86pc i386 i86pc
>> bash-2.05$ cat /etc/release
>>                         Solaris 9 HW 9/04 s9x_u7wos_09 x86
>>            Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
>>                         Use is subject to license terms.
>>                               Assembled 24 May 2005
>>
>> 2. If libmonitorjni.so is built on the s10u3 box (where the problem is 
>> noticed), it works.
>> 3. If libmonitorjni.so is built on a different Solaris 9 x86 box, it 
>> works on the s10u3 box(Find attached the showrev -a output; 
>> showrev_working.out)
>>
>> bash-2.05# uname -a
>> SunOS 0x0x0x0 5.9 Generic_118559-35 i86pc i386 i86pc
>> bash-2.05# cat /etc/release
>>                          Solaris 9 9/04 s9x_u7wos_07 x86
>>            Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
>>                         Use is subject to license terms.
>>                              Assembled 01 June 2004
>>
>> In 2 and 3 where libmonitorjni.so is working the pt_offset for the 
>> PT_SUNWCAP program header is 0xb4.
>>
>> Thanks,
>> IK.
>>
> 
> 


-- 

Rod.

Reply via email to