[lsb-discuss] lsb_appchk bug

Robert Schweikert Robert.Schweikert at abaqus.com
Mon Jul 24 11:14:14 PDT 2006


On Mon, 2006-07-24 at 08:53 -0700, Wichmann, Mats D wrote:
> *****************/
> 3 is ET_DYN. As this is a dynamic library, this is correct. So this tool
> failure.
> 
> The object does not have an eh_frame section. No doubt that's why you
> get the seg fault. Also the error message is wrong. There is no
> requirement fro a dso to have an .eh_frame section.
> 
> So I am closing this as third party problem since its clearly the
> checking tool that is broken.
> /*****************/

After further investigation I think the problem lies with the library
after all. There is no .eh_frame section, but there is an .eh_frame
section info pointing to the same address as the .data1 section as
readelf shows:

-> readelf /opt/intel/cce/9.1.039/lib/libcxaguard.so.5
<snip>
 [ 9] .data1            PROGBITS         0000000000100560  00000730
       0000000000000000  0000000000000000   W       0     0     1
  [10] .eh_frame         PROGBITS         0000000000100560  00000560
       0000000000000098  0000000000000000  WA       0     0     4
<snip>

I've stepped through appchk with the debugger and basically got the
result that readelf provides, i.e. an .eh_frame header is found in
sections.c, checkElfsection(), but due to the bogus adresses things go
wrong after this.

I am able to work around the dump by adding the following check on line
379 of sections.c

 if (! fail)

this avoids the function call to checkPROGBITS(). This hack will at
least keep me going until this is sorted out.

Robert

> 
> sometrhing is clearly confusing appchk, as it's checked dozens -
> perhaps hundreds - of shared libraries without having this sort
> of problem.  Was the tool called with the shared library getting
> the -L flag?  If you call it directly on a shared library, it
> will indeed fail.
> 
> For now I'm going to consider this an appchk problem, but may
> need the files to be able to look into it further.
> 
-- 
Robert Schweikert                   MAY THE SOURCE BE WITH YOU
(Robert.Schweikert at abaqus.com)                 LINUX
ABAQUS Inc.
Phone : 401-276-7190
FAX : 401-276-4408




More information about the lsb-discuss mailing list