Michael Peppler
Sybase Consulting
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
Sybase on Linux FAQ
Sybperl FAQ
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: "Stepan, Jamison" <Jamison dot Stepan at state dot mn dot us>
Subject: RE: Linking ctlib-linux-elf-dynamic on RedHat 5.1
Date: Aug 24 1998 6:58PM

Would disassembling the libraries to machine code and re-assembling under a
glibc system do the trick?


> -----Original Message-----
> From:	Michael Peppler []
> Sent:	Monday, August 24, 1998 9:09 AM
> To:	SybPerl Discussion List
> Cc:;
> Subject:	Linking ctlib-linux-elf-dynamic on RedHat 5.1
> Ted Law writes:
>  > After hours of machine level debugging, I finally figured out what's
>  > going on.  The symtom was that DBD::Sybase and Sybperl will work when
>  > running from bash but not from zsh, whether it was linked dynamically
> or
>  > statically.  It turned out to be just a smoke screen.  The real problem
>  > is that ctlib-linux-elf-dynamic was compiled with a definition of
> struct
>  > sigaction that is different from the one compiled into glibc 6 used in
>  > RedHat 5.1.
>  > 
>  > The offsets for sa_mask, sa_flags, and sa_restorer were 4, 132, 136,
>  > respectively in glibc.  But ctlib-linux-elf-dynamic assumed 4, 8, 12.
>  > So when sigaction is called with a non-null value for old_act, glibc
>  > actually overwrites part of the stack.  Then, when the overwritten part
>  > is used as an address to write to,  a SEG fault occurs.  The reason why
>  > it would work when running from bash was that the incorrect address
>  > happens to fall into the unprotected gap between two shared libraries.
>  > 
>  > A workaround would be to write a wrapper for all struct sigaction
>  > related routines to bridge the two sides.  But I don't know how to do
>  > that.  Would some one please take this on?
> Wow!
> Thanks for spending the time to find the problems!
> Now to find a way to actually solve the problems....
> Michael
> -- 
> Michael Peppler         -||-  Data Migrations Inc.
>       -||-
> Int. Sybase User Group  -||-