zsh-workers
 help / color / mirror / code / Atom feed
* Symbols in executable available to dynamic stuff
@ 1998-11-14  7:18 Geoff Wing
  1998-11-14 19:00 ` Bart Schaefer
  1998-11-17  8:51 ` Andrej Borsenkow
  0 siblings, 2 replies; 4+ messages in thread
From: Geoff Wing @ 1998-11-14  7:18 UTC (permalink / raw)
  To: Zsh Hackers

Heyla,
can I cause some more trouble yet? :-)

Way, way back in Zefram's patch 3038 came aczsh.m4 and this gem:
zsh_SYS_DYNAMIC_EXECSYMS:
    Check whether symbols in the executable are available to dynamically
    loaded libraries.
(And BTW, the description's wrong: it checks dynamically loaded objects,
which are not necessarily libraries)

If yes, then we don't build a dynamic zsh.  What's the danger here?  If
you control your executable, library and $MODULEPATH then why does it
matter if objects you load can run subroutines from outside their object
space?  Or is it more specific than that?  Obviously, routines in
dynamically loaded modules (eg. genprompts() in zle module) need to be able
to run routines in other modules or libraries (eg. countprompt() in zsh
library) so there is some big thing here I'm missing perhaps?

Anyone care to enlighten me, please?
-- 
Geoff Wing   <gcw@pobox.com>            Mobile : 0412 162 441
Work URL: http://www.primenet.com.au/   Ego URL: http://pobox.com/~gcw/


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Symbols in executable available to dynamic stuff
  1998-11-14  7:18 Symbols in executable available to dynamic stuff Geoff Wing
@ 1998-11-14 19:00 ` Bart Schaefer
  1998-11-15  0:56   ` Geoff Wing
  1998-11-17  8:51 ` Andrej Borsenkow
  1 sibling, 1 reply; 4+ messages in thread
From: Bart Schaefer @ 1998-11-14 19:00 UTC (permalink / raw)
  To: Geoff Wing, Zsh Hackers

On Nov 14,  6:18pm, Geoff Wing wrote:
} Subject: Symbols in executable available to dynamic stuff
}
} Way, way back in Zefram's patch 3038 came aczsh.m4 and this gem:
} zsh_SYS_DYNAMIC_EXECSYMS:
}     Check whether symbols in the executable are available to dynamically
}     loaded libraries.
} 
} If yes, then we don't build a dynamic zsh.  What's the danger here?

Eh?  I can't find the "if yes, don't build dynamic" code to which you
refer.  The only thing this is used for as far as I can tell is as one
of two tests to find out whether it's safe/possible to strip the binary
after compiling it with dynamic linkage.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Symbols in executable available to dynamic stuff
  1998-11-14 19:00 ` Bart Schaefer
@ 1998-11-15  0:56   ` Geoff Wing
  0 siblings, 0 replies; 4+ messages in thread
From: Geoff Wing @ 1998-11-15  0:56 UTC (permalink / raw)
  To: Bart Schaefer, Zsh Hackers

Bart Schaefer wrote about Re: Symbols in executable available to dynamic stuff:
:On Nov 14,  6:18pm, Geoff Wing wrote:
:} Subject: Symbols in executable available to dynamic stuff
:} Way, way back in Zefram's patch 3038 came aczsh.m4 and this gem:
:} zsh_SYS_DYNAMIC_EXECSYMS:
:}     Check whether symbols in the executable are available to dynamically
:}     loaded libraries.
:} If yes, then we don't build a dynamic zsh.  What's the danger here?
:Eh?  I can't find the "if yes, don't build dynamic" code to which you
:refer.  The only thing this is used for as far as I can tell is as one
:of two tests to find out whether it's safe/possible to strip the binary
:after compiling it with dynamic linkage.

>From memory, look in configure.in, just after the test it will test
the result via != yes and if so, set L=L, otherwise L=N  (as in @L@IBZSH)
Now, in Src, we're either building LIBZSH (which builds libzsh.*) or NIBZSH
(which doesn't.)
-- 
Geoff Wing   <gcw@pobox.com>            Mobile : 0412 162 441
Work URL: http://www.primenet.com.au/   Ego URL: http://pobox.com/~gcw/


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Symbols in executable available to dynamic stuff
  1998-11-14  7:18 Symbols in executable available to dynamic stuff Geoff Wing
  1998-11-14 19:00 ` Bart Schaefer
@ 1998-11-17  8:51 ` Andrej Borsenkow
  1 sibling, 0 replies; 4+ messages in thread
From: Andrej Borsenkow @ 1998-11-17  8:51 UTC (permalink / raw)
  To: Geoff Wing, Zsh Hackers

The problem is, that loadable modules needs access to symbols from "main"
zsh. Hash tables, parameter functions etc On some systems (notably SVR4),
symbols from a.out are *not* accessible to outside world. In this case, ZSH
is built as dynamic sjared library with stub a.out, which is just linked
against libzsh.so and calls ZSH entry point there.

/andrej

> -----Original Message-----
> From: Geoff Wing [mailto:gcw@pobox.com]
> Sent: Saturday, November 14, 1998 10:18 AM
> To: Zsh Hackers
> Subject: Symbols in executable available to dynamic stuff
>
>
> Heyla,
> can I cause some more trouble yet? :-)
>
> Way, way back in Zefram's patch 3038 came aczsh.m4 and this gem:
> zsh_SYS_DYNAMIC_EXECSYMS:
>     Check whether symbols in the executable are available to dynamically
>     loaded libraries.
> (And BTW, the description's wrong: it checks dynamically loaded objects,
> which are not necessarily libraries)
>
> If yes, then we don't build a dynamic zsh.  What's the danger here?  If
> you control your executable, library and $MODULEPATH then why does it
> matter if objects you load can run subroutines from outside their object
> space?  Or is it more specific than that?  Obviously, routines in
> dynamically loaded modules (eg. genprompts() in zle module) need
> to be able
> to run routines in other modules or libraries (eg. countprompt() in zsh
> library) so there is some big thing here I'm missing perhaps?
>
> Anyone care to enlighten me, please?
> --
> Geoff Wing   <gcw@pobox.com>            Mobile : 0412 162 441
> Work URL: http://www.primenet.com.au/   Ego URL: http://pobox.com/~gcw/
>
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1998-11-17  8:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-11-14  7:18 Symbols in executable available to dynamic stuff Geoff Wing
1998-11-14 19:00 ` Bart Schaefer
1998-11-15  0:56   ` Geoff Wing
1998-11-17  8:51 ` Andrej Borsenkow

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).