l4-hackers
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
May 2007
- 19 participants
- 42 discussions
Hi there,
I wonder if it is possible to start L4Linux (possibly with some
modifications) whether from GRUB directly or from a different loader
than l4-loader. Is there a particular reason why L4Linux is linked
against libloader.s.so? If it would not work out of the box: What has to
be neccessarily provided by that (new) loader in oder to achieve that goal?
Furthermore I did not manage to link L4Linux without libloader. I tried
to replace libloader by those libs that were included by libloader
itself, but always get undefined references:
> arch/l4/kernel/built-in.o: In function `l4env_phys_to_virt':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:200: multiple definition of `l4env_infopage'
> ../l4/lib/x86_586/l4v2/libl4env.p.a(startup.s.o):/home/user/src/otc_snapshot/l4/pkg/l4env/lib/src/startup.c:59: first defined here
> lib/lib.a(string.o): In function `memcmp':
> /home/user/src/otc_snapshot/l4linux-2.6/lib/string.c:553: multiple definition of `memcmp'
> arch/l4/kernel/built-in.o:/home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/helper_dyn.c:43: first defined here
> ld: Warning: size of symbol `memcmp' changed from 41 in arch/l4/kernel/built-in.o to 43 in lib/lib.a(string.o)
> lib/lib.a(vsprintf.o): In function `vsnprintf':
> /home/user/src/otc_snapshot/l4linux-2.6/lib/vsprintf.c:258: multiple definition of `vsnprintf'
> ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o):/home/user/src/otc_snapshot/l4/pkg/log/lib/src/sprintf.c:46: first defined here
> ld: Warning: size of symbol `vsnprintf' changed from 38 in ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o) to 1337 in lib/lib.a(vsprintf.o)
> lib/lib.a(vsprintf.o): In function `snprintf':
> /home/user/src/otc_snapshot/l4linux-2.6/lib/vsprintf.c:537: multiple definition of `snprintf'
> ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o):/home/user/src/otc_snapshot/l4/pkg/log/lib/src/sprintf.c:33: first defined here
> ld: Warning: size of symbol `snprintf' changed from 39 in ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o) to 40 in lib/lib.a(vsprintf.o)
> lib/lib.a(vsprintf.o): In function `vsprintf':
> /home/user/src/otc_snapshot/l4linux-2.6/lib/vsprintf.c:587: multiple definition of `vsprintf'
> ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o):/home/user/src/otc_snapshot/l4/pkg/log/lib/src/sprintf.c:42: first defined here
> ld: Warning: size of symbol `vsprintf' changed from 35 in ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o) to 41 in lib/lib.a(vsprintf.o)
> lib/lib.a(vsprintf.o): In function `sprintf':
> /home/user/src/otc_snapshot/l4linux-2.6/lib/vsprintf.c:604: multiple definition of `sprintf'
> ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o):/home/user/src/otc_snapshot/l4/pkg/log/lib/src/sprintf.c:24: first defined here
> ld: Warning: size of symbol `sprintf' changed from 36 in ../l4/lib/x86_586/l4v2/liblogserver.p.a(sprintf.s.o) to 41 in lib/lib.a(vsprintf.o)
> arch/l4/lib/arch-i386/built-in.o: In function `l4x_proc_init':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/lib/arch-i386/../proc.c:(.text+0x0): multiple definition of `strstr'
> arch/l4/kernel/built-in.o:/home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/helper_dyn.c:134: first defined here
> ld: Warning: size of symbol `strstr' changed from 112 in arch/l4/kernel/built-in.o to 48 in arch/l4/lib/arch-i386/built-in.o
> ../l4/lib/x86_586/l4v2/liblogserver.p.a(doprnt.s.o): In function `LOG_doprnt':
> /home/user/src/otc_snapshot/l4/pkg/log/lib/src/doprnt.c:732: undefined reference to `__umoddi3'
> /home/user/src/otc_snapshot/l4/pkg/log/lib/src/doprnt.c:733: undefined reference to `__udivdi3'
> arch/l4/kernel/built-in.o: In function `setup_l4env_memory':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:(.text+0x2a4): undefined reference to `l4dm_mem_allocate'
> arch/l4/kernel/built-in.o: In function `free':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:291: undefined reference to `l4dm_mem_release'
> arch/l4/kernel/built-in.o: In function `l4x_map_below_mainmem':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:386: undefined reference to `l4rm_lookup'
> arch/l4/kernel/built-in.o: In function `l4x_map_upage_myself':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:439: undefined reference to `l4rm_lookup'
> arch/l4/kernel/built-in.o: In function `l4x_map_iomemory_from_sigma0':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:1549: undefined reference to `l4sigma0_map_iomem'
> arch/l4/kernel/built-in.o: In function `l4env_virt_to_phys':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:165: undefined reference to `l4dm_mem_phys_addr'
> arch/l4/kernel/built-in.o: In function `__cxa_atexit':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:251: undefined reference to `l4rm_lookup'
> arch/l4/kernel/built-in.o: In function `l4x_mbm_request_ghost':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:362: undefined reference to `l4rm_area_release'
> arch/l4/kernel/built-in.o: In function `l4env_free_initrd_mem':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/kernel/main.c:867: undefined reference to `l4dm_ds_list_all'
> arch/l4/l4lxlib/l4env/lib.a(memory.o): In function `l4lx_memory_map_virtual_page':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/l4lxlib/l4env/memory.c:23: undefined reference to `l4rm_lookup'
> arch/l4/l4lxlib/l4env/lib.a(memory.o): In function `l4lx_memory_page_mapped':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/l4lxlib/l4env/memory.c:66: undefined reference to `l4rm_lookup'
> arch/l4/l4lxlib/l4env/lib.a(task.o): In function `l4lx_task_number_allocate':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/l4lxlib/l4env/task.c:65: undefined reference to `l4ts_allocate_task'
> arch/l4/l4lxlib/l4env/lib.a(task.o): In function `l4lx_task_number_free':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/l4lxlib/l4env/task.c:142: undefined reference to `l4ts_free_task'
> arch/l4/l4lxlib/l4env/lib.a(task.o): In function `l4lx_task_create_pager':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/l4lxlib/l4env/task.c:206: undefined reference to `l4ts_create_task'
> arch/l4/l4lxlib/l4env/lib.a(task.o): In function `l4lx_task_delete':
> /home/user/src/otc_snapshot/l4linux-2.6/arch/l4/l4lxlib/l4env/task.c:252: undefined reference to `l4ts_kill_task'
> ../l4/lib/x86_586/l4v2/libio-ll.a(req_rel.o): In function `l4io_request_mem_region':
> /home/user/src/otc_snapshot/l4/pkg/generic_io/lib/clientlib/req_rel.c:70: undefined reference to `l4rm_area_release'
> /home/user/src/otc_snapshot/l4/pkg/generic_io/lib/clientlib/req_rel.c:70: undefined reference to `l4rm_area_release'
> ../l4/lib/x86_586/l4v2/librtc.a(librtc.o): In function `init_done':
> /home/user/src/otc_snapshot/l4/pkg/rtc/lib/client/librtc.c:33: undefined reference to `l4_scaler_tsc_to_ns'
> /home/user/src/otc_snapshot/l4/pkg/rtc/lib/client/librtc.c:69: undefined reference to `l4_scaler_tsc_to_us'
> /home/user/src/otc_snapshot/l4/pkg/rtc/lib/client/librtc.c:33: undefined reference to `l4_scaler_ns_to_tsc'
> ../l4/lib/x86_586/l4v2/librtc.a(librtc.o): In function `l4rtc_get_seconds_since_1970':
> /home/user/src/otc_snapshot/build/l4/include/x86/l4/util/rdtsc.h:268: undefined reference to `l4_scaler_tsc_to_ns'
> /home/user/src/otc_snapshot/build/l4/include/x86/l4/util/rdtsc.h:268: undefined reference to `l4_scaler_tsc_to_ns'
Especially I wasn't able to locate "__umoddi3" and "__udivdi3" in any
library except of libloader.
I modified l4linux-2.6/arch/l4/kernel/Makefile of the latest OTC
snapshot as follows:
> L4LIBS = -L$(L4OBJ)/lib/$(L4_MK_ARCH)_$(L4_MK_CPU)/$(L4_MK_API) \
> -L$(L4OBJ)/lib/$(L4_MK_ARCH)_$(L4_MK_CPU) \
> -L$(L4OBJ)/lib \
> -T../../l4/lib/x86_586/main_stat.ld --start-group -lroot.p -lsemaphore.p \
> -lgeneric_ts.p \
> -lloaderif.p \
> -ll4util_root.p \
> -ll4sys.p \
> -lthread.p \
> -ldm_generic.p \
> -ldm_mem.p \
> -ll4env_err.p \
> -ll4env.p \
> -lnames.p \
> -lgeneric_fprov.p \
> -llogserver.p \
> -lnames.p \
> -lc_be_minimal_log_io.p \
> -lc_be_simple_mem.p \
> -lc_be_mmap.p \
> -lc_be_mmap_util.p \
> -luclibc_support.p \
> -lthread.p \
> -lc_be_l4env_start_stop.p \
> -ll4rm.p \
> -lslab.p \
> -ll4util.p -lsigma0.p -llist_alloc.p --end-group \
> $(GCCLIB)
Thanks in advance.
Kind regards,
Daniel
4
6
Hello,
I'm currently trying to get fiasco's built-in profiling working. The
problem is, as soon as roottask has been started, an error (mcount: tos
overflow) occurs which apparently prevents profiling. Later on no
gmon.out.uu is generated. Is that supposed to work? Or what am I doing
wrong here? I attached a log showing the error message.
From the JDB source code, it sounds like you can enable and disable
kernel profiling from JDB. How can this be accomplished?
Thanks for any help
Stefan
L4 Bootstrapper
Scaning /bin/fiasco -profile -profstart -nokdb -nowait -serial -comport 1 -serial_esc
Scaning /bin/sigma0
Scaning /bin/roottask
Bootloader MMAP available
[00000000,0009fc00) RAM (1)
[0009fc00,000a0000) RAM (1)
[000f0000,00100000) reserved (2)
[ffb00000,00000000) reserved (2)
[00100000,1fff0000) RAM (1)
[1fff3000,20000000) ACPI (3)
[1fff0000,1fff3000) ACPI NVS (4)
Relocated mbi to [0x61000-0x611b3]
Loading /bin/fiasco
Loading /bin/sigma0
Loading /bin/roottask
find kernel info page...
found kernel info page at 0x1000
API Version: (87) experimental
Sigma0 config ip:00094cd0 sp:00106100
Roottask config ip:00120000 sp:00109528
[00001000-00002000) /bin/fiasco
[00002000-00052680) /bin/fiasco
[00052680-0005add0) /bin/fiasco
[0005b000-0005e861) /bin/fiasco
[0005e880-00061000) /bin/fiasco
[00090000-00099380) /bin/sigma0
[0009f000-00100000) BIOS area
[00100000-00109764) bootstrap
[00120000-001345d0) /bin/roottask
[00135000-0013f9bb) /bin/roottask
[001409c0-002be9f4) /bin/roottask
[00300000-003017ec) /bin/fiasco
[00302000-0038fce0) /bin/fiasco
[03000000-03152c1d) Modules Memory
[1fff0000-ffffffff) Deep Space
Starting kernel /bin/fiasco at 003007e8
Welcome to Fiasco(ia32)!
DD-L4(v2)/x86 microkernel (C) 1998-2006 TU Dresden
Rev: Thu Dec 21 08:55:14 2006 compiled with gcc 4.1.1 for Pentium M
Performance-critical config option(s) detected:
CONFIG_SCHED_RTC is on
CONFIG_ASSEMBLER_IPC_SHORTCUT is off
CONFIG_PROFILE is on
CONFIG_NO_FRAME_PTR is off
CONFIG_JDB_ACCOUNTING is on
Enabling special fully nested mode for PIC
Using the RTC on IRQ 8 (1kHz) for scheduling
SERIAL ESC: allocated IRQ 4 for serial uart
Absolute KIP Syscalls using: Sysenter
CPU: GenuineIntel (F:2:4:9) Model: Pentium 4 (Northwood/Prestonia) at 1992 MHz
64 Entry I TLB (4K or 4M pages)
64 Entry D TLB (4k or 4M pages)
12K ยต-ops T Cache (8-way associative)
8 KB L1 D Cache (4-way associative, 64 bytes per line)
512 KB L2 U Cache (8-way associative, 64 bytes per line)
Freeing init code/data: 24576 bytes (6 pages)
Calibrating timer loop... done.
SIGMA0: Hello!
KIP @ 1000
Found Fiasco: KIP syscalls: yes
allocated 4KB for maintenance structures
Roottask.
Command line found: "/bin/roottask"
mcount: tos overflow
523840kB ( 511MB) total RAM (reported by bootloader)
479676kB ( 469MB) received RAM from Sigma0
1816kB ( 2MB) reserved RAM for RMGR
Received I/O ports 0000-ffff
Attached irqs = [ <!0> 1 <!2> 3 <!4> 5 6 7 <!8> 9 A B C D E F ]
Roottask: Loading 1 module.
#05: loading "/bin/hello"
from [0312d000-03152c1d] to [01000000-01002eea][01003000-010055c0]
entry at 0005b064 via trampoline page code
symbols at [1d6fa000-1d6fb000] (4kB), lines at [1d6f7000-1d6fa000] (12kB)
hello: My thread-id is 5.0
hello: My thread-id is 5.0
hello: My thread-id is 5.0
3
5