• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to manually register a symbol address in dyld?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to manually register a symbol address in dyld?


  • Subject: Re: How to manually register a symbol address in dyld?
  • From: Terry Lambert <email@hidden>
  • Date: Wed, 14 Oct 2009 10:33:32 -0700

So set the SDK and deployment target to the earlier version, problem solved.

The symbols are deprecated on newer versons of the OS because it is intended that you eventually stop using them so that they can be removed entirely in subsequent versions of the OS.

Otherwise libraries would be like sedimentary rock, slowly accumulationg layers over the ages, until one day you realize you have vast tracts of uninhabitable land. Sure, the Painted Desert, Goblin Valley, Arches National Park, Zion National Park, and the Grand Canyon are nice to visit, but you likely don't want those strange rock formations, mountains, deep gullies, and abandoned cliff dwellings living in your limited address space, in all your applications, forever.

-- Terry

On Oct 14, 2009, at 6:56 AM, Stéphane Corthésy <email@hidden> wrote:
Hello,

On Oct 13, 2009, at 4:30 PM, Peter O'Gorman wrote:
On 10/13/2009 02:55 AM, Stéphane Corthésy wrote:
Hello,

For some reason (that I'll explain later), I need to load a bundle which
contains symbols undefined in application libraries. BUT, though these
symbols are undefined, the actual implementations are present in current
runtime, but under a different symbol. Thus, before loading that bundle
I need to manually tell dyld that symbol 'my_renamed_function' should be
bound to 'my_original_function' already present in system libraries. Or
I need a hook that would allow me to do that while loading the bundle.
I'm working on 10.6. I tried to look at dyld source code, but got lost :-)
I tried to use NSInstallLinkEditErrorHandlers, but my handler wasn't
invoked.


So, is there a way to do that, and how?

Why do you need to do this? There are very likely alternative ways of doing what you need e.g.

weak undefined external symbols,


That cannot work. As I wrote, the bundle (already weakly linked) has symbols that are not available on 10.6 (they were on 10.5), BUT though the symbols are not exported, the actual functions are available in 10.6, thus I'd like to create a bundle which would augment dyld symbol table and then load the other bundle with (previously unknown) symbols, and it would link well.


symbol aliases,


I don't know what it is. I saw no mention on 'alias' in dyld code.


using dlsym() to check at runtime what symbols are available etc etc.


Wouldn't work, like with weak symbols.


Please provide more details about the problem you're trying to solve.


I will, once I know how to do it ;-)


Thanks,

Stéphane
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >How to manually register a symbol address in dyld? (From: Stéphane Corthésy <email@hidden>)
 >Re: How to manually register a symbol address in dyld? (From: Peter O'Gorman <email@hidden>)
 >Re: How to manually register a symbol address in dyld? (From: Stéphane Corthésy <email@hidden>)

  • Prev by Date: Re: kqueue EVFILT_PROC and child process pid
  • Next by Date: Re: How to manually register a symbol address in dyld?
  • Previous by thread: Re: How to manually register a symbol address in dyld?
  • Next by thread: Carbon framework availability
  • Index(es):
    • Date
    • Thread