7 Bug-Reported-by: Petr Sumbera <Petr.Sumbera@Sun.COM>
8 Bug-Reference-ID: <45AF5F4B.1020800@sun.com>
9 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html
13 Under certain circumstances (loopback mounts), the bash getcwd does not
14 return correct results. This patch allows the use of the Solaris libc
15 getcwd even though it doesn't dynamically allocate memory.
17 Run `touch configure' to make sure make doesn't try to run autoconf.
18 Then run configure with whatever options you like.
22 *** ../bash-3.2-patched/configure.in Tue Sep 26 11:05:45 2006
23 --- bash-3.2/configure.in Wed Jan 31 09:48:00 2007
26 dnl Process this file with autoconf to produce a configure script.
28 ! # Copyright (C) 1987-2006 Free Software Foundation, Inc.
30 # This program is free software; you can redistribute it and/or modify
32 dnl Process this file with autoconf to produce a configure script.
34 ! # Copyright (C) 1987-2007 Free Software Foundation, Inc.
36 # This program is free software; you can redistribute it and/or modify
39 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
40 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
41 ! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
42 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
43 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
45 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
46 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
47 ! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
48 ! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
49 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
50 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
51 *** ../bash-3.2-patched/config-bot.h Tue Sep 12 16:43:04 2006
52 --- bash-3.2/config-bot.h Tue Mar 6 10:41:31 2007
55 /* modify settings or make new ones based on what autoconf tells us. */
57 ! /* Copyright (C) 1989-2002 Free Software Foundation, Inc.
59 This file is part of GNU Bash, the Bourne Again SHell.
61 /* modify settings or make new ones based on what autoconf tells us. */
63 ! /* Copyright (C) 1989-2007 Free Software Foundation, Inc.
65 This file is part of GNU Bash, the Bourne Again SHell.
70 ! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so
71 ! the replacement in getcwd.c will be built. */
72 ! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN)
78 ! /* If we have a getcwd(3), but one that does not dynamically allocate memory,
79 ! #undef HAVE_GETCWD so the replacement in getcwd.c will be built. We do
80 ! not do this on Solaris, because their implementation of loopback mounts
81 ! breaks the traditional file system assumptions that getcwd uses. */
82 ! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS)
85 *** ../bash-3.2-patched/builtins/common.c Thu Jul 27 09:39:51 2006
86 --- bash-3.2/builtins/common.c Tue Mar 6 10:43:27 2007
89 ! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
91 This file is part of GNU Bash, the Bourne Again SHell.
93 ! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
95 This file is part of GNU Bash, the Bourne Again SHell.
99 if (the_current_working_directory == 0)
101 + #if defined (GETCWD_BROKEN)
102 + the_current_working_directory = getcwd (0, PATH_MAX);
104 the_current_working_directory = getcwd (0, 0);
106 if (the_current_working_directory == 0)
108 *** ../bash-3.2-patched/configure Tue Sep 26 11:06:01 2006
109 --- bash-3.2/configure Tue Mar 6 10:59:20 2007
112 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
113 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
114 ! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
115 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
116 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
118 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
119 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
120 ! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
121 ! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
122 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
123 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
124 *** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
125 --- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
128 looks for to find the patch level (for the sccs version string). */
130 ! #define PATCHLEVEL 10
132 #endif /* _PATCHLEVEL_H_ */
134 looks for to find the patch level (for the sccs version string). */
136 ! #define PATCHLEVEL 11
138 #endif /* _PATCHLEVEL_H_ */