configure runs and removing the `-lnsl' from the assignment to `LIBS'
fixes the problem.
-5. There is a problem with Red Hat Linux's `makewhatis' script.
- Running `makewhatis' with bash-2.0 or later versions results
- in error messages like this:
+5. There is a problem with the `makewhatis' script in older (pre-7.0)
+ versions of Red Hat Linux. Running `makewhatis' with bash-2.0 or
+ later versions results in error messages like this:
/usr/sbin/makewhatis: cd: manpath: No such file or directory
/usr/sbin/makewhatis: manpath/whatis: No such file or directory
It's not possible to build a completely statically-linked binary, since
part of the C library depends on dynamic linking. The following recipe
- assumes that you're using gcc and the Solaris ld (/usr/ccs/bin/ld).
+ assumes that you're using gcc and the Solaris ld (/usr/ccs/bin/ld) on
+ Solaris 2.5.x or 2.6:
configure --enable-static-link
make STATIC_LD= LOCAL_LIBS='-Wl,-B,dynamic -ldl -Wl,-B,static'
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:
+
+ configure --enable-static-link
+ 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.
+
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:
configure i586-beos
Similarly for cygwin32.
+
+13. Bash-2.05 has reverted to the bash-2.03 behavior of honoring the current
+ locale setting when processing ranges within pattern matching bracket
+ expressions ([A-Z]). This is what POSIX.2 and SUSv2 specify.
+
+ The behavior of the matcher in bash-2.05 depends on the current LC_COLLATE
+ setting. Setting this variable to `C' or `POSIX' will result in the
+ traditional behavior ([A-Z] matches all uppercase ASCII characters).
+ Many other locales, including the en_US locale (the default on many US
+ versions of Linux) collate the upper and lower case letters like this:
+
+ AaBb...Zz
+
+ which means that [A-Z] matches every letter except `z'.
+
+ The portable way to specify upper case letters is [:upper:] instead of
+ A-Z; lower case may be specified as [:lower:] instead of a-z.
+
+ Look at the manual pages for setlocale(3), strcoll(3), and, if it is
+ present, locale(1). If you have locale(1), you can use it to find
+ your current locale information even if you do not have any of the
+ LC_ variables set.
+
+ My advice is to put
+
+ export LC_COLLATE=C
+
+ into /etc/profile and inspect any shell scripts run from cron for
+ constructs like [A-Z]. This will prevent things like
+
+ rm [A-Z]*
+
+ from removing every file in the current directory except those beginning
+ 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.
+
+