1 NAME: bash 2 VERSION: 4.0 3 DESCRIPTION: GNU Bourne Again Shell 4 LICENSE: GPLv3 5 PACKAGE: SUNWbash 6 PROJECT_URL: http://www.gnu.org/software/bash/bash.html 7 SOURCE_DOWNLOAD: ftp://ftp.gnu.org/gnu/bash/bash-4.0.tar.gz 8 SUPPORT: Managed 9 BUGTRAQ: solaris/utility/bash 10 OSR: 12655 11 COMMENTS: 12 13 Needs special compiler flags and additional Solaris patches 14 15 =============================================================== 16 17 Explanation of some unusual compiler flags: 18 19 1. We must use the c99 C Compiler driver, and not cc -xc99=%all. 20 Some functions from the Standard Math Library are only available 21 with the c99 driver, for example, isinf(3M). 22 23 2. The included libreadline.a and libsh.a want to use FIONREAD. 24 The Linux assumption is that FIONREAD is defined in <sys/ioctl.h>, 25 but on Solaris it is defined in <sys/filio.h>. The workaround is 26 to raise -DSOLARIS on compiler line, and #ifdef guard the inclusion 27 of <sys/filio.h> on the SOLARIS macro being raised. 28 29 3. Bash supports full multi-byte and internationalization. Because 30 we want this feature, we must raise all the C99 conformance compiler 31 flags, in order to make available all the wchar_t Standard C Library 32 functions. 33 34 4. We want to use the curses library in /usr/lib/libcurses.so.1. 35 But because we are raising the full C99 conformance macros, the 36 compiler will automatically link /usr/xpg4/lib/libcurses.so.2. 37 The workaround is to pass /usr/lib/libcurses.so.1 with absolute 38 path in ./configure during the libcurses availability test. This 39 gets passed verbatim to the Makefile. 40 41 5. The file $(top_srcdir)/support/signames.c creates some bogus 42 signal names (named SIGJUNK%d) because it does not know about 43 Solaris' SIGJVM1 and SIGJVM2. This, in turn, creates a big problem 44 with the actual number of signal names defined in 45 $(top_srcdir)/signames.h -- namely, the number of signal strings 46 in the signal_names array ends up exceeding the number of char pointers 47 defined by NSIG + 4, and the compiler aborts. We work around this by 48 patching $(top_srcdir)/support/signames.c appropriately, and create 49 the signal name strings for SIGJVM1 and SIGJVM2. 50 51 6. The bash test harness passes 100% if and only if all the UTF-8 52 locales are installed on the build/test system. 53 54 7. The test harness will, for certain tests, print out what appears 55 to be errors. Please read the output of the test harness, and determine 56 that what appears to be an error is actually an error. Some tests will 57 warn that test output is expected, and does not necessarily indicate 58 an error condition. 59 60 =============================================================== 61 62 Known Bugs: 63 64 Memory leak within read builtin in both bash 4.0.x and 3.[12].x: 65 66 http://www.mail-archive.com/bug-bash@gnu.org/msg05774.html 67 68 ----- 69 70