leak caused by using the bash malloc because closedir(3) needs to read
freed memory to find the file descriptor to close
- If you are using GNU libc, especially on a linux system
-
-(Configuring --without-gnu-malloc will still result in lib/malloc/libmalloc.a
-being built and linked against, but there is only a stub file in the archive.)
-
2. Configure using shlicc2 on BSD/OS 2.1 and BSD/OS 3.x to use loadable
builtins
with libraries not being built and make reporting errors like
`cr: not found' when library construction is attempted.
-11. Building a statically-linked bash on Solaris 2.5.x, 2.6, or 7 is
+11. Building a statically-linked bash on Solaris 2.5.x, 2.6, 7, or 8 is
complicated.
It's not possible to build a completely statically-linked binary, since
If you want to completely remove any dependence on /usr, perhaps
to put a copy of bash in /sbin and have it available when /usr is
- not mounted, force the build process to use the shared ld.so library
+ not mounted, force the build process to use the shared dl.so library
in /etc/lib.
For gcc, this would be something like
thor(2)$ ldd bash
libdl.so.1 => /etc/lib/libdl.so.1
- On Solaris 7 (and presumably Solaris 8, though I do not run that), the
- following recipe appears to work for gcc:
+ On Solaris 7 (Solaris 8, using the version of gcc on the free software
+ CD-ROM), the following recipe appears to work for gcc:
configure --enable-static-link
- make STATIC_LD='-Wl,-Bstatic' LOCAL_LIBS='Wl,-Bdynamic -Wl,-R/etc/lib -ldl -Wl,-Bstatic'
+ make STATIC_LD='-Wl,-Bstatic' LOCAL_LIBS='-Wl,-Bdynamic -Wl,-R/etc/lib -ldl -Wl,-Bstatic'
thor.ins.cwru.edu(2)$ ldd bash
libdl.so.1 => /etc/lib/libdl.so.1
Make the analogous changes if you are running Sun's C Compiler.
+ I have received word that adding -L/etc/lib (or the equivalent
+ -Wl,-L/etc/lib) might also be necessary, in addition to the -R/etc/lib.
+
+ On later versions of Solaris, it may be necessary to add -lnsl before
+ -ldl; statically-linked versions of bash using libnsl are not guaranteed
+ to work correctly on future versions of Solaris.
+
12. Configuring bash to build it in a cross environment. Currently only
two native versions can be compiled this way, cygwin32 and x86 BeOS.
For BeOS, you would configure it like this:
with `z' and still allow individual users to change the collation order.
Users may put the above command into their own profiles as well, of course.
+14. Building on Interix (nee OpenNT), which Microsoft bought from Softway
+ Systems and has seemingly abandoned (thanks to Kevin Moore for this item).
+
+ 1. cp cross-build/opennt.cache config.cache
+
+ 2. If desired, edit pathnames.h to set the values of SYS_PROFILE and
+ DEFAULT_HOSTS_FILE appropriately.
+
+ 3. export CONFIG_SHELL=$INTERIX_ROOT/bin/sh
+
+ 4. ./configure --prefix=$INTERIX_ROOT/usr/local (or wherever you
+ want it).
+
+ 5. make; make install; enjoy
+
+15. Configure with `CC=xlc' if you don't have gcc on AIX 4.2 and later
+ versions. `xlc' running in `cc' mode has trouble compiling error.c.
+
+16. Configure --disable-multibyte on NetBSD versions (1.4 through at least
+ 1.6.1) that include wctype.h but do not define wctype_t.
+
+17. Do NOT use bison-1.75. It builds a non-working parser. The most
+ obvious effect is that constructs like "for i; do echo $i; done" don't
+ loop over the positional parameters.
+
+18. I have received reports that using -O2 with the MIPSpro results in a
+ binary that fails in strange ways. Using -O1 seems to work.
+
+19. There is special handling to ensure the shell links against static
+ versions of the included readline and history libraries on Mac OS X;
+ Apple ships inadequate dynamic libreadline and libhistory "replacements"
+ as standard libraries.
+