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