zsh-workers
 help / color / mirror / code / Atom feed
* I hate it when you break my static link
@ 2001-07-06  6:03 Bart Schaefer
  2001-07-06  7:49 ` Andrej Borsenkow
  0 siblings, 1 reply; 4+ messages in thread
From: Bart Schaefer @ 2001-07-06  6:03 UTC (permalink / raw)
  To: zsh-workers

Please everyone remember:  When you add a module that depends on any kind
of external library feature, you should if at all possible verify that zsh
builds both --enable-dynamic and --disable-dynamic AND that it does so on
a machine that DOES NOT have the external library with which your module
is linking.

In particular, the default linkage in <module>.mdd should NEVER be 'either'
when there is a dependency on a library that might not be available.

More changes than the following will be necessary to actually fix the pcre
module on systems that don't have the library for it, but the following at
least gets --disable-dynamic working again.

diff -u zsh-forge/current/Src/Modules/pcre.mdd zsh-4.0/Src/Modules/pcre.mdd
--- zsh-forge/current/Src/Modules/pcre.mdd	Mon Jul  2 12:39:35 2001
+++ zsh-4.0/Src/Modules/pcre.mdd	Thu Jul  5 22:44:55 2001
@@ -1,5 +1,5 @@
 name=zsh/pcre
-link=either
+link=dynamic
 load=no
 
 autobins="pcre_compile pcre_study pcre_match"

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

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


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

* RE: I hate it when you break my static link
  2001-07-06  6:03 I hate it when you break my static link Bart Schaefer
@ 2001-07-06  7:49 ` Andrej Borsenkow
  2001-07-06  8:41   ` Bart Schaefer
  0 siblings, 1 reply; 4+ messages in thread
From: Andrej Borsenkow @ 2001-07-06  7:49 UTC (permalink / raw)
  To: Bart Schaefer, zsh-workers

>
> diff -u zsh-forge/current/Src/Modules/pcre.mdd
> zsh-4.0/Src/Modules/pcre.mdd
> --- zsh-forge/current/Src/Modules/pcre.mdd	Mon Jul  2 12:39:35 2001
> +++ zsh-4.0/Src/Modules/pcre.mdd	Thu Jul  5 22:44:55 2001
> @@ -1,5 +1,5 @@
>  name=zsh/pcre
> -link=either
> +link=dynamic
>  load=no

I guess it should be changed to conditionally enable building only if
prerequisites (pcre) is found. I do not see any point in having load of
dummy modules all of them defining aliases for bin_notavail.

We have some legacy commands that were moved from main to modules; but no
point to do it with new ones.

-andrej


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

* Re: I hate it when you break my static link
  2001-07-06  7:49 ` Andrej Borsenkow
@ 2001-07-06  8:41   ` Bart Schaefer
  2001-07-06  8:54     ` Andrej Borsenkow
  0 siblings, 1 reply; 4+ messages in thread
From: Bart Schaefer @ 2001-07-06  8:41 UTC (permalink / raw)
  To: zsh-workers

On Jul 6, 11:49am, Andrej Borsenkow wrote:
} Subject: RE: I hate it when you break my static link
}
} I guess it should be changed to conditionally enable building only if
} prerequisites (pcre) is found. I do not see any point in having load of
} dummy modules all of them defining aliases for bin_notavail.

The problem is that failure to (auto)load a module is an abortive error
(i.e. kills entire scripts/functions), whereas bin_notavail is a simple
command failure.  This makes it difficult to decide whether to omit a
module entirely or give it a clean failure mode.

Being halfway in between is the problem.

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

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


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

* RE: I hate it when you break my static link
  2001-07-06  8:41   ` Bart Schaefer
@ 2001-07-06  8:54     ` Andrej Borsenkow
  0 siblings, 0 replies; 4+ messages in thread
From: Andrej Borsenkow @ 2001-07-06  8:54 UTC (permalink / raw)
  To: Bart Schaefer, zsh-workers

> } I guess it should be changed to conditionally enable building only if
> } prerequisites (pcre) is found. I do not see any point in having load of
> } dummy modules all of them defining aliases for bin_notavail.
>
> The problem is that failure to (auto)load a module is an abortive error
> (i.e. kills entire scripts/functions), whereas bin_notavail is a simple
> command failure.  This makes it difficult to decide whether to omit a
> module entirely or give it a clean failure mode.
>

Module that can be not available should never be autoloaded. Then it is
quite easy

zmodload -e foo || zmodload -q foo || exit 1

while you cannot distinguish failed command from not-available.

> Being halfway in between is the problem.
>

Agreed. If module is not built all auto* in mdd should be ignored.

-andrej


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

end of thread, other threads:[~2001-07-06  8:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-06  6:03 I hate it when you break my static link Bart Schaefer
2001-07-06  7:49 ` Andrej Borsenkow
2001-07-06  8:41   ` Bart Schaefer
2001-07-06  8:54     ` 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).