Tools to modify shared libraries

Joe Kelsey joek at mail.flyingcroc.net
Wed Jun 18 06:41:07 PDT 2003


Stijn Hoop wrote:
> On Tue, Jun 17, 2003 at 06:38:29AM -0700, Joe Kelsey wrote:
> 
>>Basically, what I want to do is remove several entries from the *front* 
>>of the dynamic section.  Actually, I would settle for just removing all 
>>of a certain tag (such as DT_NEEDED) from the dynamic section.
> 
> 
> I'm very interested, having a working Flash 6 would be great!
> 
> Isn't there a way to change these into bogus dependencies, or dependencies
> on a FreeBSD shared object or something?

No.

I removed the dependencies by manually editing the .so with emacs...

Now, here is a list of the undefined symbols beginning with __:

    598: 00000000    79 FUNC    GLOBAL DEFAULT  UND __write at GLIBC_2.0 (4)
    939: 00000000   231 FUNC    GLOBAL DEFAULT  UND 
__assert_fail at GLIBC_2.0 (2)
   1129: 00000000   109 FUNC    GLOBAL DEFAULT  UND 
__errno_location at GLIBC_2.0 (4)
   1656: 00000000   172 FUNC    WEAK   DEFAULT  UND __deregister_frame_info
   1703: 00000000   815 FUNC    GLOBAL DEFAULT  UND __xstat at GLIBC_2.0 (2)
   1952: 00000000   815 FUNC    GLOBAL DEFAULT  UND __fxstat at GLIBC_2.0 (2)
   2133: 00000000     4 OBJECT  GLOBAL DEFAULT  UND 
__ctype_toupper at GLIBC_2.0 (2)  2763: 00000000   157 FUNC    WEAK 
DEFAULT  UND __cxa_finalize at GLIBC_2.1.3 (9)
   3161: 00000000     4 OBJECT  GLOBAL DEFAULT  UND __ctype_b at GLIBC_2.0 (2)
   3319: 00000000  1642 FUNC    GLOBAL DEFAULT  UND 
__strtoul_internal at GLIBC_2.0 (2)
   3376: 00000000    26 FUNC    GLOBAL DEFAULT  UND __terminate
   3624: 00000000   129 FUNC    WEAK   DEFAULT  UND __register_frame_info
   3716: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__

The old flash library had these symbols:

     34: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND __builtin_vec_new
     36: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND __builtin_vec_delete
   1163: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND __errno_location

flashpluginwrapper provides the two __builtin references.  I do not 
think we need to provide the WEAK symbols.  We do need to provide the 
others, specifically __write, __ctype_toupper, __ctype_b, 
__assert_failure, __xstate, __fxstate, and __strtoul_internal.

Anyone want to start modifying flashpluginwrapper?

/Joe





More information about the freebsd-questions mailing list