fiasco-ux does not build
Udo A. Steinberg
us15 at os.inf.tu-dresden.de
Fri Apr 21 14:35:18 CEST 2006
On Fri, 21 Apr 2006 12:45:45 +0200 Stefan Scheler (SS) wrote:
SS> So I made the above change in kernel/fiasco/src/lib/amm/errno.h which
SS> seems to fix this issue for all files. Thanks for the pointer.
Ok, that reveals who the culprit is. The errno.h file in lib/amm declares errno
as global rather than per-thread, which is bogus on a TLS system. In fact, the
whole errno.h file there is misplaced. Your libc include files are not at
fault.
Official fix is to remove that errno.h file completely, and to apply the
following patches. I've just committed them and they will propagate to remote
CVS shortly.
- Udo
Index: Makeconf
===================================================================
RCS file: /home/cvs/l4/kernel/fiasco/src/Makeconf,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- Makeconf 19 Apr 2006 06:58:23 -0000 1.75
+++ Makeconf 21 Apr 2006 12:29:29 -0000 1.76
@@ -2,7 +2,7 @@
# Fiasco make configuration file
#
# created 1996/04/20 by hohmuth
-# $Id: Makeconf,v 1.75 2006/04/19 06:58:23 aw11 Exp $
+# $Id: Makeconf,v 1.76 2006/04/21 12:29:29 us15 Exp $
#
CHECKCC = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \
@@ -89,7 +89,7 @@
LIBGCC := $(shell $(CXX) -print-libgcc-file-name)
L4ALL_INCDIR ?= $(addprefix -I, $(PRIVATE_INCDIR))
-L4STD_INCDIR ?= -nostdinc
+L4STD_INCDIR ?=
L4STD_INCDIR_LAST ?= -I$(wildcard $(dir $(LIBGCC))/include \
$(dir $(LIBGCC))/../include)
Index: kern/tb_entry_output.cpp
===================================================================
RCS file: /home/cvs/l4/kernel/fiasco/src/kern/tb_entry_output.cpp,v
retrieving revision 1.78
diff -u -r1.78 tb_entry_output.cpp
--- kern/tb_entry_output.cpp 21 Jan 2006 22:43:41 -0000 1.78
+++ kern/tb_entry_output.cpp 21 Apr 2006 12:03:08 -0000
@@ -528,7 +528,7 @@
: "#%02x: %-*s err=%04x @ "L4_PTR_FMT
" cs=%04x sp="L4_PTR_FMT" eax="L4_PTR_FMT,
e->trapno(),
- tidlen, tidstr, e->errno(), e->ip(), e->cs(), e->sp(),
+ tidlen, tidstr, e->error(), e->ip(), e->cs(), e->sp(),
e->trapno() == 14 ? e->cr2() : e->eax());
return maxlen;
Index: kern/amd64/tb_entry-amd64.cpp
===================================================================
RCS file: /home/cvs/l4/kernel/fiasco/src/kern/amd64/tb_entry-amd64.cpp,v
retrieving revision 1.2
diff -u -r1.2 tb_entry-amd64.cpp
--- kern/amd64/tb_entry-amd64.cpp 1 Dec 2005 13:14:57 -0000 1.2
+++ kern/amd64/tb_entry-amd64.cpp 21 Apr 2006 12:03:08 -0000
@@ -22,7 +22,7 @@
{
private:
char _trapno;
- Unsigned16 _errno;
+ Unsigned16 _error;
Mword _rbp, _rdx, _cr2, _rax, _rflags, _rsp;
Unsigned16 _cs, _ds;
};
@@ -119,7 +119,7 @@
{
set_global(Tbuf_trap, ctx, rip);
_trapno = ts->_trapno;
- _errno = ts->_err;
+ _error = ts->_err;
_rdx = ts->_rdx;
_cr2 = ts->_cr2;
_rax = ts->_rax;
@@ -143,8 +143,8 @@
PUBLIC inline
Unsigned16
-Tb_entry_trap::errno() const
-{ return _errno; }
+Tb_entry_trap::error() const
+{ return _error; }
PUBLIC inline
Mword
Index: kern/arm/tb_entry-arm.cpp
===================================================================
RCS file: /home/cvs/l4/kernel/fiasco/src/kern/arm/tb_entry-arm.cpp,v
retrieving revision 1.3
diff -u -r1.3 tb_entry-arm.cpp
--- kern/arm/tb_entry-arm.cpp 18 Feb 2006 16:49:52 -0000 1.3
+++ kern/arm/tb_entry-arm.cpp 21 Apr 2006 12:03:08 -0000
@@ -22,7 +22,7 @@
{
private:
Unsigned8 _trapno;
- Unsigned16 _errno;
+ Unsigned16 _error;
Mword _cpsr, _sp;
};
@@ -107,8 +107,8 @@
PUBLIC inline
Unsigned16
-Tb_entry_trap::errno() const
-{ return _errno; }
+Tb_entry_trap::error() const
+{ return _error; }
PUBLIC inline
Mword
Index: kern/shared/tb_entry-ia32-ux.cpp
===================================================================
RCS file: /home/cvs/l4/kernel/fiasco/src/kern/shared/tb_entry-ia32-ux.cpp,v
retrieving revision 1.10
diff -u -r1.10 tb_entry-ia32-ux.cpp
--- kern/shared/tb_entry-ia32-ux.cpp 1 Dec 2005 13:14:58 -0000
1.10 +++ kern/shared/tb_entry-ia32-ux.cpp 21 Apr 2006 12:03:08 -0000
@@ -22,7 +22,7 @@
{
private:
Unsigned8 _trapno;
- Unsigned16 _errno;
+ Unsigned16 _error;
Mword _ebp, _edx, _cr2, _eax, _eflags, _esp;
Unsigned16 _cs, _ds;
};
@@ -119,7 +119,7 @@
{
set_global(Tbuf_trap, ctx, eip);
_trapno = ts->_trapno;
- _errno = ts->_err;
+ _error = ts->_err;
_edx = ts->_edx;
_cr2 = ts->_cr2;
_eax = ts->_eax;
@@ -145,8 +145,8 @@
PUBLIC inline
Unsigned16
-Tb_entry_trap::errno() const
-{ return _errno; }
+Tb_entry_trap::error() const
+{ return _error; }
PUBLIC inline
Mword
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20060421/1275ed41/attachment-0001.asc>
More information about the l4-hackers
mailing list