This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
pc-linux-gnulibc1: ucontext not supported
- From: Craig Groeschel <ladder91 at yahoo dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 22 Nov 2002 10:10:50 -0800 (PST)
- Subject: pc-linux-gnulibc1: ucontext not supported
I got an error when trying to build gcc-3.2 on a Linux
2.0.39/glibc1 system. The attached patch fixes the problem.
=====
--
Craig Groeschel >ladder91 at yahoo dot com< AT '00
Tread lightly. Leave no trace. Never forget.
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus – Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
Synopsis: GNU libc 1 and Linux 2.0 do not support struct ucontext.
gcc version: 3.2, native build
System: i586-pc-linux-gnulibc1, Linux 2.0.39
severity: breaks the build
priority: your call
Suggested fix: Don't include the nonexistent header file and don't define
the macro that wants struct ucontext. (Kernel support was added sometime
between 2.0.39 and 2.2.22. I assume library support was added in glibc2.
Hopefully it's sufficient to check the library version and not the kernel
version too.)
Build log showing the error:
make[3]: Entering directory `/home/src/gcc-3.2-objdir/gcc'
mkdir libgcc
if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi
./xgcc -B./ -B/usr/i586-pc-linux-gnulibc1/bin/ \
-isystem /usr/i586-pc-linux-gnulibc1/include \
-isystem /usr/i586-pc-linux-gnulibc1/sys-include \
-O2 -DIN_GCC -DUSE_GNULIBC_1 \
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \
-isystem ./include -fPIC -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
-I. -I. -I../../gcc-3.2/gcc -I../../gcc-3.2/gcc/. \
-I../../gcc-3.2/gcc/config -I../../gcc-3.2/gcc/../include \
-DL_muldi3 -c ../../gcc-3.2/gcc/libgcc2.c -o libgcc/./_muldi3.o
In file included from tconfig.h:21,
from ../../gcc-3.2/gcc/libgcc2.c:36:
../../gcc-3.2/gcc/config/i386/linux.h:225:26: sys/ucontext.h: No such file or directory
See also: gcc-help message from 19 Jun 2001 "gcc-3.0 compiling problem..."
by schaecsn at gmx dot de.
Suggested patch:
gcc/ChangeLog:
2002-11-21 Craig Groeschel <ladder91@yahoo.com>
config/i386/linux.h [USE_GNULIBC_1]: Do not try to include <sys/ucontext.h>
and do not define MD_FALLBACK_FRAME_STATE_FOR.
--- gcc/config/i386/linux.h.orig Thu Nov 21 13:40:39 2002
+++ gcc/config/i386/linux.h Thu Nov 21 12:24:00 2002
@@ -222,9 +222,12 @@ Boston, MA 02111-1307, USA. */
#ifdef IN_LIBGCC2
#include <signal.h>
+#ifndef USE_GNULIBC_1
#include <sys/ucontext.h>
#endif
+#endif
+#ifndef USE_GNULIBC_1
#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
do { \
unsigned char *pc_ = (CONTEXT)->ra; \
@@ -278,3 +281,4 @@ Boston, MA 02111-1307, USA. */
(FS)->retaddr_column = 8; \
goto SUCCESS; \
} while (0)
+#endif