Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

compiling zsh 3.10 on Solaris 2.4 for dynamically loaded modules



Hi
	Im trying to compile zsh 3.1.0 with dynamically loaded binary
modules (a wonderful idea) for Solaris 2.4. Has anyone got this to work
and is it meant to work on Solaris yet?

I use

	./configure --enable-dynamic
 
and I get the following edited results...

	....
	checking for dlopen... yes
	checking for dlerror... yes
	checking for dlsym... yes
	checking for dlclose... yes
	....
	checking if your dlsym() needs a leading underscore... failed

This failure, I guess, turns off the dynamic option and I get a non-dynamic
zsh. When I try to lie and build a zsh with dynamic loading then it
will read the zle.so library but fail soon after.

Here is the output of truss......
 
open("/tmp/lib/zsh/3.1.0/zle", O_RDONLY)	= 3
fstat(3, 0xDFFFEF4C)				= 0
mmap(0x00000000, 4096, PROT_READ|PROT_EXEC, MAP_SHARED, 3, 0) = 0xDF7B0000
mmap(0x00000000, 319488, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xDF580000
munmap(0xDF5BB000, 61440)			= 0
mmap(0xDF5CA000, 5784, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 237568) = 0xDF5CA000
open("/dev/zero", O_RDONLY)			= 4
mmap(0xDF5CC000, 5016, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0xDF5CC000
close(3)					= 0
mprotect(0xDF580000, 239338, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0xDF5CA000, 13208)			= 0
munmap(0xDF580000, 239338)			= 0
close(4)					= 0
munmap(0xDF7B0000, 4096)			= 0
zsh: failed to load module: zle
write(2, " z s h :   f a i l e d  ".., 32)	= 32
getuid()					= 11916 [11916]
argo% write(2, " a r g o %  ", 6)			= 6
read(0, 0xDF6C432C, 1024)			= 0
time()						= 854386460
getpid()					= 1133 [1132]
lseek(0, 0, SEEK_CUR)				= 768892
_exit(0)


Any suggestions? All this was done with a minimal environment in case it
made a difference but it didn't.

			thanks in advance,

				Anthony.



----------------------- full output of configure. --------------

creating cache ./config.cache
configuring for zsh 3.1.0
checking host system type... sparc-sun-solaris2.4
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking whether gcc needs -traditional... no
checking for working const... yes
checking for gcc option to accept ANSI C... 
checking for function prototypes... yes
checking size of long... 4
checking if signed to unsigned casting is broken... no
checking if the compiler supports variable-lenth arrays... yes
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... /usr/local/bin/ginstall -c
checking for mawk... no
checking for gawk... gawk
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether stat file-mode macros are broken... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/time.h... yes
checking for sys/times.h... yes
checking for sys/select.h... yes
checking for termcap.h... no
checking for termio.h... yes
checking for termios.h... yes
checking for sys/param.h... yes
checking for sys/filio.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for limits.h... yes
checking for fcntl.h... yes
checking for libc.h... no
checking for sys/utsname.h... yes
checking for sys/resource.h... yes
checking for locale.h... yes
checking for errno.h... yes
checking for stdlib.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for conflicts in sys/time.h and sys/select.h... no
checking ut_host in struct utmp... no
checking ut_host in struct utmpx... yes
checking POSIX termios... yes
checking TIOCGWINSZ in termios.h... yes
checking for sys/ptem.h... yes
checking for tgetent in -ltermcap... yes
checking for getdomainname... no
checking for getdomainname in -lnsl... yes
checking for dlopen in -ldl... yes
checking if an include file defines ospeed... no
checking if you must define ospeed... yes
checking if tgetent accepts NULL... yes
checking return type of signal handlers... void
checking for pid_t... yes
checking for off_t... yes
checking for mode_t... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking for sigset_t... yes
checking for struct timezone... yes
checking whether getpgrp takes no argument... yes
checking for strftime... yes
checking for waitpid... yes
checking for select... yes
checking for tcsetpgrp... yes
checking for tcgetattr... yes
checking for strstr... yes
checking for lstat... yes
checking for getlogin... yes
checking for setpgid... yes
checking for gettimeofday... yes
checking for gethostname... yes
checking for mkfifo... yes
checking for wait3... no
checking for difftime... yes
checking for sigblock... no
checking for sigsetmask... no
checking for sigrelse... yes
checking for sighold... yes
checking for killpg... no
checking for sigaction... yes
checking for getrlimit... yes
checking for sigprocmask... yes
checking for setuid... yes
checking for seteuid... yes
checking for setreuid... no
checking for setresuid... no
checking for strerror... yes
checking for nis_list... yes
checking for initgroups... yes
checking for dlopen... yes
checking for dlerror... yes
checking for dlsym... yes
checking for dlclose... yes
checking for working strcoll... yes
checking what style of signals to use... POSIX_SIGNALS
checking where signal.h is located... /usr/include/sys/signal.h
checking where the RLIMIT macros are located... /usr/include/sys/resource.h
checking for /dev/fd filesystem... yes
checking for RFS superroot directory... no
checking for NIS... no
checking for NIS+... no
checking where utmp is located... /etc/utmp
checking where wtmp is located... /etc/wtmp
checking if typeahead needs FIONREAD... no
checking for brk() prototype in <unistd.h>... yes
checking for sbrk() prototype in <unistd.h>... yes
checking for ioctl prototype in <sys/ioctl.h>... no
checking if named FIFOs work... yes
checking if echo in /bin/sh interprets escape sequences... yes
checking if your system use ELF binaries... yes
checking if your dlsym() needs a leading underscore... failed
updating cache ./config.cache
creating ./config.status
creating Makefile
creating Src/Makefile
creating Src/Zle/Makefile
creating Src/Modules/Makefile
creating Doc/Makefile
creating Etc/Makefile
creating Misc/Makefile
creating Util/Makefile
creating Functions/Makefile
creating StartupFiles/Makefile
creating config.h
config.h is unchanged

zsh configuration
-----------------
zsh version           : 3.1.0
host operating system : solaris2.4
source code location  : .
compiler              : gcc
compiler flags        :  -Wall -Wno-implicit -Wmissing-prototypes -O2
binary install path   : /usr/local/bin
man page install path : /usr/local/man
info install path     : /usr/local/info



Messages sorted by: Reverse Date, Date, Thread, Author