Re: Making spl7 just cli/sti?

2015-03-07 Thread Justus Winter
Quoting Samuel Thibault (2014-12-14 02:44:08)
> The attached patch fixes this by making spl.S use just cli/sti for spl7;
> they can be emulated fine without any VMEXIT.  This lowers the number of
> PIC mask changes to a few hundreds or thousands only, and getting the
> gnumach on kvm on kvm case way faster.

Unfortunately this change breaks gnumach on xen:

% xl create -c hurd
[...]
GKKK
% xl dmesg
(XEN) Pagetable walk from fff8:
(XEN)  L4[0x000] = a0b9b027 057e
(XEN)  L3[0x003] = a0b9c027 057d
(XEN)  L2[0x1ff] =  
(XEN) domain_crash_sync called from entry.S: fault at 82d08021fe4c 
compat_create_bounce_frame+0x62/0xde
(XEN) Domain 30 (vcpu#0) crashed on cpu#1:
(XEN) [ Xen-4.4.1  x86_64  debug=n  Not tainted ]
(XEN) CPU:1
(XEN) RIP:0009:[<80006768>]
(XEN) RFLAGS: 00010286   EM: 1   CONTEXT: pv guest
(XEN) rax: 0011   rbx: 80086db4   rcx: 043c
(XEN) rdx: 0007   rsi: 004b   rdi: 80039430
(XEN) rbp: 80086e54   rsp:    r8:  80006314
(XEN) r9:  80086e54   r10: 82d08022d3d0   r11: 0286
(XEN) r12: 0952cd6ddd1c   r13: 82d080300800   r14: 82d0802ea940
(XEN) r15: 8300a4434000   cr0: 8005003b   cr4: 06f0
(XEN) cr3: 000105f16000   cr2: fffc
(XEN) ds: 0011   es: 0011   fs: 0011   gs: 0011   ss: 0011   cs: 0009
(XEN) Guest stack trace from esp=:
(XEN)  Stack empty.

Justus



Recent libc breaks Hurd builds

2015-03-07 Thread Justus Winter
Hello,

with the current libc from debian-ports (2.19-16~1) I see:

gcc -std=gnu99 -fgnu89-inline -Wall -g -O3  -g -O2 -fstack-protector-strong 
-Wformat -Werror=format-security -I. -I../../libshouldbeinlibc -I.. -I../.. 
-I../include -I../../include -D_GNU_SOURCE -D_IO_MTSAFE_IO 
-D_FILE_OFFSET_BITS=64  -D_FORTIFY_SOURCE=2 -DPACKAGE_NAME=\"GNU\ Hurd\" 
-DPACKAGE_TARNAME=\"hurd\" -DPACKAGE_VERSION=\"0.5\" -DPACKAGE_STRING=\"GNU\ 
Hurd\ 0.5\" -DPACKAGE_BUGREPORT=\"bug-hurd@gnu.org\" 
-DPACKAGE_URL=\"http://www.gnu.org/software/hurd/\"; -DHAVE_MIG_RETCODE=1 
-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 
-DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_PARTED_PARTED_H=1 -DHAVE_LIBPARTED=1 
-DHAVE_LIBUUID=1 -DHAVE_LIBDL=1 -DYYTEXT_POINTER=1 -DX11_PREFIX=\"/usr\" 
-DHAVE_DAEMON=1 -DHAVE_BLKID=1 -DHAVE_LIBREADLINE=1  -c -o timefmt.o 
../../libshouldbeinlibc/timefmt.c
In file included from /usr/include/i386-gnu/bits/stdio-lock.h:22:0,
from /usr/include/libio.h:149,
from /usr/include/stdio.h:74,
from ../../libshouldbeinlibc/timefmt.c:21:
/usr/include/i386-gnu/bits/libc-lock.h:257:34: error: unknown type name 
‘pthread_mutex_t’
extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
 ^
[...]

Minimal test case:

echo "#include " | gcc -D_IO_MTSAFE_IO -x c -

Justus



Re: Recent libc breaks Hurd builds

2015-03-07 Thread Svante Signell
On Sat, 2015-03-07 at 17:33 +0100, Justus Winter wrote:
> Hello,
> 
> with the current libc from debian-ports (2.19-16~1) I see:
> 
> gcc -std=gnu99 -fgnu89-inline -Wall -g -O3  -g -O2 -fstack-protector-strong 
> -Wformat -Werror=format-security -I. -I../../libshouldbeinlibc -I.. -I../.. 
> -I../include -I../../include -D_GNU_SOURCE -D_IO_MTSAFE_IO 
> -D_FILE_OFFSET_BITS=64  -D_FORTIFY_SOURCE=2 -DPACKAGE_NAME=\"GNU\ Hurd\" 
> -DPACKAGE_TARNAME=\"hurd\" -DPACKAGE_VERSION=\"0.5\" -DPACKAGE_STRING=\"GNU\ 
> Hurd\ 0.5\" -DPACKAGE_BUGREPORT=\"bug-hurd@gnu.org\" 
> -DPACKAGE_URL=\"http://www.gnu.org/software/hurd/\"; -DHAVE_MIG_RETCODE=1 
> -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
> -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_PARTED_PARTED_H=1 
> -DHAVE_LIBPARTED=1 -DHAVE_LIBUUID=1 -DHAVE_LIBDL=1 -DYYTEXT_POINTER=1 
> -DX11_PREFIX=\"/usr\" -DHAVE_DAEMON=1 -DHAVE_BLKID=1 -DHAVE_LIBREADLINE=1  -c 
> -o timefmt.o ../../libshouldbeinlibc/timefmt.c
> In file included from /usr/include/i386-gnu/bits/stdio-lock.h:22:0,
> from /usr/include/libio.h:149,
> from /usr/include/stdio.h:74,
> from ../../libshouldbeinlibc/timefmt.c:21:
> /usr/include/i386-gnu/bits/libc-lock.h:257:34: error: unknown type name 
> ‘pthread_mutex_t’
> extern int __pthread_mutex_init (pthread_mutex_t *__mutex,

I see this too when building hurd. pthread/pthread-functions.h is
missing. Should'nt that file be provided in libc0.3-dev?