⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notes

📁 android-w.song.android.widget
💻
字号:
Platform-Specific Configuration and Operation Notes===================================================1.  configure --without-gnu-malloc on:	alpha running OSF/1, Linux, or NetBSD (malloc needs 8-byte alignment;	bash malloc has 8-byte alignment now, but I have no alphas to test on)	next running NeXT/OS	all machines running SunOS YP code: SunOS4, SunOS5, HP/UX, if you	have problems with username completion or tilde expansion for	usernames found via YP/NIS	linux (optional, but don't do it if you're using Doug Lea's malloc)	QNX 4.2	other OSF/1 machines (KSR/1, HP, IBM AIX/ESA)	AIX	sparc SVR4, SVR4.2 (ICL reference port)	DG/UX	Cray	NetBSD/sparc (malloc needs 8-byte alignment; bash malloc has 8-byte	alignment now, but I have no NetBSD machines to test on)	BSD/OS 2.1, 3.x if you want to use loadable builtins	Motorola m68k machines running System V.3.  There is a file descriptor	leak caused by using the bash malloc because closedir(3) needs to read	freed memory to find the file descriptor to close2.  Configure using shlicc2 on BSD/OS 2.1 and BSD/OS 3.x to use loadable    builtins3.  Bash cannot be built in a directory separate from the source directory    using configure --srcdir=... unless the version of `make' you're using    does $VPATH handling right.  The script support/mkclone can be used to    create a `build tree' using symlinks to get around this.4.  I've had reports that username completion (as well as tilde expansion    and \u prompt expansion) does not work on IRIX 5.3 when linking with    -lnsl.  This is only a problem when you're running NIS, since    apparently -lnsl supports only /etc/passwd and not the NIS functions    for retrieving usernames and passwords.  Editing the Makefile after    configure runs and removing the `-lnsl' from the assignment to `LIBS'    fixes the problem.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    chmod: manpath/whatis: No such file or directory    /usr/sbin/makewhatis: cd: catpath: No such file or directory    /usr/sbin/makewhatis: catpath/whatis: No such file or directory    chmod: catpath/whatis: No such file or directory    The problem is with `makewhatis'.  Red Hat (and possibly other    Linux distributors) uses a construct like this in the code:        eval path=$"$pages"path    to do indirect variable expansion.  This `happened to work' in    bash-1.14 and previous versions, but that was more an accident    of implementation than anything else -- it was never supported    and certainly is not portable.    Bash-2.0 has a new feature that gives a new meaning to $"...".    This is explained more completely in item 1 in the COMPAT file.    The three lines in the `makewhatis' script that need to be changed    look like this:             eval $topath=$"$topath":$name    [...]       eval path=$"$pages"path    [...]    eval path=$"$pages"path    The portable way to write this code is             eval $topath="\$$topath":$name       eval path="\$$pages"path    eval path="\$$pages"path    You could also experiment with another new bash feature: ${!var}.    This does indirect variable expansion, making the use of eval    unnecessary.6.  There is a problem with syslogd on many Linux distributions (Red Hat    and Slackware are two that I have received reports about).  syslogd    sends a SIGINT to its parent process, which is waiting for the daemon    to finish its initialization.  The parent process then dies due to    the SIGINT, and bash reports it, causing unexpected console output    while the system is booting that looks something like	starting daemons: syslogd/etc/rc.d/rc.M: line 29: 38 Interrupt ${NET}/syslogd    Bash-2.0 reports events such as processes dying in scripts due to    signals when the standard output is a tty.  Bash-1.14.x and previous    versions did not report such events.    This should probably be reported as a bug to whatever Linux distributor    people see the problem on.  In my opinion, syslogd should be changed to    use some other method of communication, or the wrapper function (which    appeared to be `daemon' when I looked at it some time ago) or script    (which appeared to be `syslog') should catch SIGINT, since it's an    expected event, and exit cleanly.7.  Several people have reported that `dip' (a program for SLIP/PPP    on Linux) does not work with bash-2.0 installed as /bin/sh.    I don't run any Linux boxes myself, and do not have the dip    code handy to look at, but the `problem' with bash-2.0, as    it has been related to me, is that bash requires the `-p'    option to be supplied at invocation if it is to run setuid    or setgid.     This means, among other things, that setuid or setgid programs    which call system(3) (a horrendously bad practice in any case)    relinquish their setuid/setgid status in the child that's forked    to execute /bin/sh.     The following is an *unofficial* patch to bash-2.0 that causes it    to not require `-p' to run setuid or setgid if invoked as `sh'.    It has been reported to work on Linux.  It will make your system    vulnerable to bogus system(3) calls in setuid executables.--- ../bash-2.0.orig/shell.c    Wed Dec 18 14:16:30 1996+++ shell.c     Fri Mar  7 13:12:03 1997@@ -347,7 +347,7 @@   if (posixly_correct)     posix_initialize (posixly_correct);-  if (running_setuid && privileged_mode == 0)+  if (running_setuid && privileged_mode == 0 && act_like_sh == 0)     disable_priv_mode ();   /* Need to get the argument to a -c option processed in the8.  Some people have asked about binding all of the keys in a PC-keyboard-    style numeric keypad to readline functions.  Here's something I    received from the gnu-win32 list that may help.  Insert the following    lines into ~/.inputrc:# home key"\e[1~":beginning-of-line# insert key"\e[2~":kill-whole-line# del key"\e[3~":delete-char# end key"\e[4~":end-of-line# pgup key"\e[5~":history-search-forward# pgdn key"\e[6~":history-search-backward9.  Hints for building under Minix 2.0 (Contributed by Terry R. McConnell,    <tmc@barnyard.syr.edu>)   The version of /bin/sh distributed with Minix is not up to the job of   running the configure script. The easiest solution is to swap /bin/sh   with /usr/bin/ash. Then use chmem(1) to increase the memory allocated   to /bin/sh. The following settings are known to work:   text         data     bss   stack  memory   63552  9440          3304   65536  141832  /bin/sh   If you have problems with make or yacc it may be worthwhile first to   install the GNU versions of these utilities before attempting to build   bash. (As of this writing, all of these utilities are available for the   i386 as pre-built binaries via anonymous ftp at math.syr.edu in the   pub/mcconnell/minix directory. Note that the GNU version of yacc is called   bison.)   Unless you want to see lots of warnings about old-style declarations,   do LOCAL_CFLAGS=-wo; export LOCAL_CFLAGS before running configure.   (These warnings are harmless, but annoying.)   configure will insist that you supply a host type. For example, do   ./configure --host=i386-pc-minix.   Minix does not support the system calls required for a proper    implementation of ulimit().  The `ulimit' builtin will not be available.   Configure will fail to notice that many things like uid_t are indeed   typedef'd in <sys/types.h>, because it uses egrep for this purpose   and minix has no egrep. You could try making a link /usr/bin/egrep -->   /usr/bin/grep. Better is to install the GNU version of grep in   /usr/local/bin and make the link /usr/local/bin/egrep -->/usr/local/bin/grep.   (These must be hard links, of course, since Minix does not support   symbolic links.)   You will see many warnings of the form:   warning: unknown s_type: 98   I have no idea what this means, but it doesn't seem to matter.10. If you do not have /usr/ccs/bin in your PATH when building on SunOS 5.x    (Solaris 2), the configure script will be unable to find `ar' and    `ranlib' (of course, ranlib is unnecessary).  Make sure your $PATH    includes /usr/ccs/bin on SunOS 5.x.  This generally manifests itself    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, 7, or 8 is    complicated.    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) on    Solaris 2.5.x or 2.6:	configure --enable-static-link	make STATIC_LD= LOCAL_LIBS='-Wl,-B,dynamic -ldl -Wl,-B,static'    This should result in a bash binary that depends only on libdl.so:	thor(2)$ ldd bash	        libdl.so.1 =>    /usr/lib/libdl.so.1    If you're using the Sun C Compiler (Sun WorkShop C Compiler version    4.2 was what I used), you should be able to get away with using	configure --enable-static-link	make STATIC_LD=  LOCAL_LIBS='-B dynamic -ldl -B static'    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 dl.so library    in /etc/lib.    For gcc, this would be something like	configure --enable-static-link	make STATIC_LD= LOCAL_LIBS='-Wl,-B,dynamic -Wl,-R/etc/lib -ldl -Wl,-B,static'    For Sun's WS4.2 cc	configure --enable-static-link	make STATIC_LD=  LOCAL_LIBS='-B dynamic -R/etc/lib -ldl -B static'    seems to work, at least on Solaris 2.5.1:	thor(2)$ ldd bash	        libdl.so.1 =>    /etc/lib/libdl.so.1    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'	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:	export RANLIB=i586-beos-ranlib	export AR=i586-beos-ar	export CC=i586-beos-gcc	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.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; enjoy15.  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.20.  If you're on a system like SGI Irix, and you get an error about not     being able to refer to a dynamic symbol     (ld: non-dynamic relocations refer to dynamic symbol PC), add     -DNEED_EXTERN_PC to the LOCAL_CFLAGS variable in lib/readline/Makefile.in     and rebuild.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -