You can subscribe to this list here.
| 1999 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(15) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2000 |
Jan
(6) |
Feb
(1) |
Mar
(39) |
Apr
(13) |
May
(24) |
Jun
(11) |
Jul
(23) |
Aug
(85) |
Sep
(12) |
Oct
(103) |
Nov
(79) |
Dec
(112) |
| 2001 |
Jan
(52) |
Feb
(82) |
Mar
(84) |
Apr
(65) |
May
(105) |
Jun
(188) |
Jul
(174) |
Aug
(182) |
Sep
(103) |
Oct
(137) |
Nov
(143) |
Dec
(98) |
| 2002 |
Jan
(258) |
Feb
(236) |
Mar
(386) |
Apr
(307) |
May
(238) |
Jun
(170) |
Jul
(252) |
Aug
(230) |
Sep
(278) |
Oct
(394) |
Nov
(336) |
Dec
(194) |
| 2003 |
Jan
(290) |
Feb
(182) |
Mar
(175) |
Apr
(220) |
May
(209) |
Jun
(286) |
Jul
(279) |
Aug
(164) |
Sep
(208) |
Oct
(324) |
Nov
(204) |
Dec
(380) |
| 2004 |
Jan
(344) |
Feb
(332) |
Mar
(395) |
Apr
(357) |
May
(349) |
Jun
(352) |
Jul
(279) |
Aug
(269) |
Sep
(374) |
Oct
(442) |
Nov
(428) |
Dec
(253) |
| 2005 |
Jan
(225) |
Feb
(219) |
Mar
(245) |
Apr
(249) |
May
(203) |
Jun
(157) |
Jul
(171) |
Aug
(194) |
Sep
(200) |
Oct
(232) |
Nov
(190) |
Dec
(195) |
| 2006 |
Jan
(158) |
Feb
(190) |
Mar
(235) |
Apr
(161) |
May
(134) |
Jun
(169) |
Jul
(117) |
Aug
(161) |
Sep
(170) |
Oct
(297) |
Nov
(230) |
Dec
(205) |
| 2007 |
Jan
(197) |
Feb
(132) |
Mar
(151) |
Apr
(97) |
May
(109) |
Jun
(99) |
Jul
(57) |
Aug
(110) |
Sep
(56) |
Oct
(119) |
Nov
(39) |
Dec
(45) |
| 2008 |
Jan
(101) |
Feb
(116) |
Mar
(141) |
Apr
(98) |
May
(133) |
Jun
(61) |
Jul
(43) |
Aug
(76) |
Sep
(20) |
Oct
(32) |
Nov
(22) |
Dec
(41) |
| 2009 |
Jan
(35) |
Feb
(15) |
Mar
(18) |
Apr
(13) |
May
(13) |
Jun
(26) |
Jul
(12) |
Aug
(32) |
Sep
(21) |
Oct
(41) |
Nov
(35) |
Dec
(12) |
| 2010 |
Jan
(3) |
Feb
(35) |
Mar
(28) |
Apr
(20) |
May
(5) |
Jun
(14) |
Jul
(6) |
Aug
(8) |
Sep
(20) |
Oct
(20) |
Nov
(10) |
Dec
(12) |
| 2011 |
Jan
(14) |
Feb
(10) |
Mar
(14) |
Apr
(14) |
May
(13) |
Jun
(43) |
Jul
(13) |
Aug
(50) |
Sep
(30) |
Oct
(23) |
Nov
(15) |
Dec
(49) |
| 2012 |
Jan
(15) |
Feb
(28) |
Mar
(7) |
Apr
|
May
(12) |
Jun
(13) |
Jul
(28) |
Aug
(11) |
Sep
(19) |
Oct
(27) |
Nov
(5) |
Dec
(25) |
| 2013 |
Jan
(18) |
Feb
(19) |
Mar
(56) |
Apr
(26) |
May
(38) |
Jun
(24) |
Jul
(42) |
Aug
(24) |
Sep
(4) |
Oct
(3) |
Nov
(18) |
Dec
(4) |
| 2014 |
Jan
(10) |
Feb
(9) |
Mar
(3) |
Apr
|
May
(12) |
Jun
(34) |
Jul
(8) |
Aug
(18) |
Sep
(3) |
Oct
(27) |
Nov
(2) |
Dec
(1) |
| 2015 |
Jan
|
Feb
(10) |
Mar
(49) |
Apr
(2) |
May
(4) |
Jun
(7) |
Jul
(1) |
Aug
(17) |
Sep
(7) |
Oct
(35) |
Nov
(40) |
Dec
(4) |
| 2016 |
Jan
(9) |
Feb
|
Mar
(6) |
Apr
|
May
(10) |
Jun
(2) |
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
(1) |
| 2017 |
Jan
(2) |
Feb
(4) |
Mar
(1) |
Apr
(4) |
May
(31) |
Jun
(9) |
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(2) |
| 2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Richard W. <ri...@no...> - 2014-10-11 11:42:21
|
Am 11.10.2014 um 13:29 schrieb Nicolas Iooss: > syscall_stub_start is declared with different types in C files: > > arch/um/kernel/physmem.c: extern int __syscall_stub_start; > arch/um/kernel/skas/mmu.c: extern int __syscall_stub_start; > arch/um/os-Linux/skas/mem.c: extern unsigned long __syscall_stub_start; > arch/um/os-Linux/skas/process.c: extern int __syscall_stub_start; > > Fix this inconsistency by always using unsigned long. This does not > change anything in the compiled code because only the address of > __syscall_stub_start is used, but it makes the static checker I use > stop complaining about incompatible declarations. While we're here, can you put these declarations into a single header file? Thanks, //richard |
|
From: Nicolas I. <nic...@po...> - 2014-10-11 11:36:32
|
syscall_stub_start is declared with different types in C files:
arch/um/kernel/physmem.c: extern int __syscall_stub_start;
arch/um/kernel/skas/mmu.c: extern int __syscall_stub_start;
arch/um/os-Linux/skas/mem.c: extern unsigned long __syscall_stub_start;
arch/um/os-Linux/skas/process.c: extern int __syscall_stub_start;
Fix this inconsistency by always using unsigned long. This does not
change anything in the compiled code because only the address of
__syscall_stub_start is used, but it makes the static checker I use
stop complaining about incompatible declarations.
Signed-off-by: Nicolas Iooss <nic...@m4...>
---
arch/um/kernel/physmem.c | 2 +-
arch/um/kernel/skas/mmu.c | 2 +-
arch/um/os-Linux/skas/process.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c
index 30fdd5d0067b..f1d7ed26d638 100644
--- a/arch/um/kernel/physmem.c
+++ b/arch/um/kernel/physmem.c
@@ -75,7 +75,7 @@ void map_memory(unsigned long virt, unsigned long phys, unsigned long len,
}
}
-extern int __syscall_stub_start;
+extern unsigned long __syscall_stub_start;
void __init setup_physmem(unsigned long start, unsigned long reserve_end,
unsigned long len, unsigned long long highmem)
diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c
index 007d5503f49b..4bdd49e0bdc3 100644
--- a/arch/um/kernel/skas/mmu.c
+++ b/arch/um/kernel/skas/mmu.c
@@ -12,7 +12,7 @@
#include <os.h>
#include <skas.h>
-extern int __syscall_stub_start;
+extern unsigned long __syscall_stub_start;
static int init_stub_pte(struct mm_struct *mm, unsigned long proc,
unsigned long kernel)
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c
index 908579f2b0ab..f30575557791 100644
--- a/arch/um/os-Linux/skas/process.c
+++ b/arch/um/os-Linux/skas/process.c
@@ -193,7 +193,7 @@ static void handle_trap(int pid, struct uml_pt_regs *regs,
handle_syscall(regs);
}
-extern int __syscall_stub_start;
+extern unsigned long __syscall_stub_start;
static int userspace_tramp(void *stack)
{
--
2.1.2
|
|
From: Chen G. <gan...@gm...> - 2014-10-04 13:05:51
|
syscall() is implemented in libc.so/a (e.g. for glibc, in "syscall.o"),
so for normal ".o" files, it is undefined, neither can be found within
kernel wide, so will break modpost.
Since ".o" files is OK, can simply export 'syscall' symbol, let modpost
know about that, then can fix this issue.
The related error (with allmodconfig under um):
MODPOST 1205 modules
ERROR: "syscall" [fs/hostfs/hostfs.ko] undefined!
Signed-off-by: Chen Gang <gan...@gm...>
---
arch/um/kernel/ksyms.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c
index 543c047..e7780f3 100644
--- a/arch/um/kernel/ksyms.c
+++ b/arch/um/kernel/ksyms.c
@@ -42,3 +42,6 @@ EXPORT_SYMBOL(os_makedev);
EXPORT_SYMBOL(add_sigio_fd);
EXPORT_SYMBOL(ignore_sigio_fd);
EXPORT_SYMBOL(sigio_broken);
+
+extern long int syscall (long int __sysno, ...);
+EXPORT_SYMBOL(syscall);
--
1.9.3
|
|
From: Tony Su <to...@su...> - 2014-09-01 18:55:33
|
You can do it. But, you need to implement a kernel QEMU patch to emulate non-x86 architectures. If you can't find info about it, I'll dig up the stuff I've done. I first ran into this awhile back when an openSUSE ARM project setting up a chroot on an x86 system. Tony On Mon, Sep 1, 2014 at 12:35 AM, Richard Weinberger <ric...@gm...> wrote: > On Mon, Sep 1, 2014 at 12:19 AM, Clemens Eisserer <lin...@gm...> wrote: >> Hi, >> >> I would like to use a current version of debian on my Nokia-770 (linux >> 2.6.16.27) in a chroot-environment, however everything past lenny (5.0, >> unsupported since mid 2012) requires a newer kernel - which can't be easily >> upgraded due to proprietary wlan drivers and other specific patches. >> >> Does user mode linux support the ARM9 architecture with 2.6.16.27 as host? > > No, UML works only on x86 and x86_64. > > -- > Thanks, > //richard > > ------------------------------------------------------------------------------ > Slashdot TV. > Video for Nerds. Stuff that matters. > http://tv.slashdot.org/ > _______________________________________________ > User-mode-linux-user mailing list > Use...@li... > https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user |
|
From: Tony Su <to...@su...> - 2014-09-01 18:43:19
|
Additional FYI The QEMU patch is implemented as a kernel module, so you don't have to re-compile the kernel, in openSUSE it's available as a very ordinary package. On other distros, implementation of course should be similar. If no already available as a package(BTW - the openSUSE RPM is probably cross platform so probably would work on any other RPM based distro) you should be able to build from source and add it manually to your available kernel modules. Tony On Mon, Sep 1, 2014 at 11:28 AM, Tony Su <to...@su...> wrote: > You can do it. > But, you need to implement a kernel QEMU patch to emulate non-x86 architectures. > If you can't find info about it, I'll dig up the stuff I've done. > > I first ran into this awhile back when an openSUSE ARM project setting > up a chroot on an x86 system. > > Tony > > On Mon, Sep 1, 2014 at 12:35 AM, Richard Weinberger > <ric...@gm...> wrote: >> On Mon, Sep 1, 2014 at 12:19 AM, Clemens Eisserer <lin...@gm...> wrote: >>> Hi, >>> >>> I would like to use a current version of debian on my Nokia-770 (linux >>> 2.6.16.27) in a chroot-environment, however everything past lenny (5.0, >>> unsupported since mid 2012) requires a newer kernel - which can't be easily >>> upgraded due to proprietary wlan drivers and other specific patches. >>> >>> Does user mode linux support the ARM9 architecture with 2.6.16.27 as host? >> >> No, UML works only on x86 and x86_64. >> >> -- >> Thanks, >> //richard >> >> ------------------------------------------------------------------------------ >> Slashdot TV. >> Video for Nerds. Stuff that matters. >> http://tv.slashdot.org/ >> _______________________________________________ >> User-mode-linux-user mailing list >> Use...@li... >> https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user |
|
From: Richard W. <ric...@gm...> - 2014-09-01 07:35:21
|
On Mon, Sep 1, 2014 at 12:19 AM, Clemens Eisserer <lin...@gm...> wrote: > Hi, > > I would like to use a current version of debian on my Nokia-770 (linux > 2.6.16.27) in a chroot-environment, however everything past lenny (5.0, > unsupported since mid 2012) requires a newer kernel - which can't be easily > upgraded due to proprietary wlan drivers and other specific patches. > > Does user mode linux support the ARM9 architecture with 2.6.16.27 as host? No, UML works only on x86 and x86_64. -- Thanks, //richard |
|
From: Clemens E. <lin...@gm...> - 2014-08-31 22:20:03
|
Hi, I would like to use a current version of debian on my Nokia-770 (linux 2.6.16.27) in a chroot-environment, however everything past lenny (5.0, unsupported since mid 2012) requires a newer kernel - which can't be easily upgraded due to proprietary wlan drivers and other specific patches. Does user mode linux support the ARM9 architecture with 2.6.16.27 as host? Thanks, Clemens |
|
From: Chen G. <gan...@gm...> - 2014-08-25 12:27:17
|
Hello all: It seems no any additional rejections for it. I guess, I need split the 'big' patch into pieces, and each send to its' related mailing list, so let it not like a spam. And the schedule may like: - Firstly, send patch for "init/Kconfig" to add CPU_*_ENDIAN. If pass checking (hope it can be passed checking), then - Send each related patch to each related architectures which already knew their ENDIAN attributes in config time (24 patches, I guess), then - Make patch for Kbuild to support __BUILDING_TIME_BIG_ENDIAN__, and pass checking (hope I can finish), then - Finish left architectures which need __BUILDING_TIME_BIG_ENDIAN__ (4 patches, I guess). Welcome any ideas, suggestions, or completions. And if no additional reply, I shall not send any additional information any more to avoid spam to other members. Thanks. On 08/24/2014 04:38 PM, Chen Gang wrote: > Hello Maintainers: > > Is this patch OK? If it pass basic checking, please let me know, and I > shall try to make another related patch for KBuild (I can do nothing > related with Kbuild, before get confirmation for this patch). > > Thanks. > > On 8/15/14 17:01, Chen Gang wrote: >> >> >> On 8/15/14 6:14, Chen Gang wrote: >>> On 08/15/2014 02:04 AM, Ralf Baechle wrote: >>>> >>> >>> OK, thanks, I assumes when support both endian, the default choice is >>> CPU_BIG_ENDIAN, although no default value for choice (originally, I did >>> worry about it). >>> >>>> So I think you can just drop the MIPS segment from your patch. >>>> >>> >>> If what I assumes is correct, what you said sounds reasonable to me. >>> >>> >> >> So for me, it is harmless to add CPU_*_ENDIAN explicitly, and can let >> other members don't need think of. >> >> By the way, for sh, it is almost the same case, except it contents the >> default value, for me, it is clear enough, so I skip sh architecture in >> this patch. >> >> >> Thanks >> > -- Chen Gang Open, share, and attitude like air, water, and life which God blessed |
|
From: Chen G. <gan...@gm...> - 2014-08-24 08:34:28
|
Hello Maintainers: Is this patch OK? If it pass basic checking, please let me know, and I shall try to make another related patch for KBuild (I can do nothing related with Kbuild, before get confirmation for this patch). Thanks. On 8/15/14 17:01, Chen Gang wrote: > > > On 8/15/14 6:14, Chen Gang wrote: >> On 08/15/2014 02:04 AM, Ralf Baechle wrote: >>> >> >> OK, thanks, I assumes when support both endian, the default choice is >> CPU_BIG_ENDIAN, although no default value for choice (originally, I did >> worry about it). >> >>> So I think you can just drop the MIPS segment from your patch. >>> >> >> If what I assumes is correct, what you said sounds reasonable to me. >> >> > > So for me, it is harmless to add CPU_*_ENDIAN explicitly, and can let > other members don't need think of. > > By the way, for sh, it is almost the same case, except it contents the > default value, for me, it is clear enough, so I skip sh architecture in > this patch. > > > Thanks > -- Chen Gang Open, share, and attitude like air, water, and life which God blessed |
|
From: Thomas M. <th...@m3...> - 2014-08-23 12:15:23
|
Hello, in UML kernel 3.16.1 I get a long loop in __getnstimeofday() (kernel/time/timekeeping.c:315) in the call of timespec_add_ns(), because it seems like the tk->xtime_sec wasn't updated yet, but the nsecs were. nsecs can be as high as 8111000111000111000l when left the host kernel suspended to ram over night. then the function timespec_add_ns() (include/linux/time.h:266) will call __iter_div_u64_rem() which has an optimized loop for the case that the dividend is not much bigger as the divisior. but this isn't the case for resume from ram on the host kernel. any ideas how to fix this? is it possible to intercept the resume from ram and update the timekeeper->xtime_sec somehow? or can the um arch somehow overwrite timespec_add_ns() to always use div_u64_rem() instead? how does the host kernel deal with this? are there some .suspend/.resume callbacks missing in the um "itimer" clocksource? with kind regards thomas |
|
From: Thomas M. <th...@m3...> - 2014-08-19 19:17:57
|
Hi,
the build with -O0 fails with:
make -f scripts/Makefile.build obj=init
gcc -Wp,-MD,init/.main.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include -I./arch/um/include -Iarch/um/include/generated -Iinclude -I./arch/um/include/uapi -Iarch/um/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -m64 -I./arch/x86/um -I./arch/x86/include -I./arch/x86/include/uapi -Iarch/x86/include/generated -Iarch/x86/include/generated/uapi -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -mcmodel=large -fno-builtin -m64 -funit-at-a-time -D__arch_um__ -I./arch/um/include/shared -I./arch/x86/um/shared -I./arch/um/include/shared/skas -Dvmap=kernel_vmap -Din6addr_loopback=kernel_in6addr_loopback -Din6addr_any=kernel_in6addr_any -Dstrrchr=kernel_strrchr -D_LARGEFILE64_SOURCE -Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask -Dmktime=kernel_mktime -fno-delete-null-pointer-checks -O0 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(main)" -D"KBUILD_MODNAME=KBUILD_STR(main)" -c -o init/main.o init/main.c
In file included from ./arch/um/include/asm/fixmap.h:58:0,
from ./arch/um/include/asm/pgtable.h:11,
from include/linux/mm.h:51,
from include/linux/ring_buffer.h:5,
from include/linux/ftrace_event.h:5,
from include/trace/syscall.h:6,
from include/linux/syscalls.h:80,
from init/main.c:18:
include/asm-generic/fixmap.h: In function 'fix_to_virt':
include/asm-generic/fixmap.h:31:2: error: size of unnamed array is negative
BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
^
make[1]: *** [init/main.o] Error 1
make: *** [init] Error 2
bug or feature?
any ideas?
switching BUILD_BUG_ON unconditionally to BUILD_BUG_ON_MSG - which uses compiletime_assert() - breaks the build a bit later here:
gcc -Wp,-MD,arch/um/kernel/skas/.uaccess.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include -I./arch/um/include -Iarch/um/include/generated -Iinclude -I./arch/um/include/uapi -Iarch/um/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -m64 -I./arch/x86/um -I./arch/x86/include -I./arch/x86/include/uapi -Iarch/x86/include/generated -Iarch/x86/include/generated/uapi -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -mcmodel=large -fno-builtin -m64 -funit-at-a-time -D__arch_um__ -I./arch/um/include/shared -I./arch/x86/um/shared -I./arch/um/include/shared/skas -Dvmap=kernel_vmap -Din6addr_loopback=kernel_in6addr_loopback -Din6addr_any=kernel_in6addr_any -Dstrrchr=kernel_strrchr -D_LARGEFILE64_SOURCE -Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask -Dmktime=kernel_mktime -fno-delete-null-pointer-checks -O0 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(uaccess)" -D"KBUILD_MODNAME=KBUILD_STR(uaccess)" -c -o arch/um/kernel/skas/uaccess.o arch/um/kernel/skas/uaccess.c
In file included from include/linux/err.h:4:0,
from arch/um/kernel/skas/uaccess.c:6:
arch/um/kernel/skas/uaccess.c: In function 'do_op_one_page':
include/linux/compiler.h:346:20: error: call to '__compiletime_assert_85' declared with attribute error: BUILD_BUG_ON failed: __same_type(((void *)addr), struct page *)
prefix ## suffix(); \
^
include/linux/compiler.h:351:2: note: in expansion of macro '__compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler.h:363:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/bug.h:50:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/bug.h:74:1: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^
include/linux/highmem.h:125:2: note: in expansion of macro 'BUILD_BUG_ON'
BUILD_BUG_ON(__same_type((addr), struct page *)); \
^
arch/um/kernel/skas/uaccess.c:85:2: note: in expansion of macro 'kunmap_atomic'
kunmap_atomic((void *)addr);
^
make[2]: *** [arch/um/kernel/skas/uaccess.o] Error 1
make[1]: *** [arch/um/kernel/skas] Error 2
make: *** [arch/um/kernel] Error 2
|
|
From: Real N. <enj...@gm...> - 2014-08-16 15:27:49
|
hi,
I can't trace kmem_cache_init function with GDB, because gdb jump to wrong source line. Is there anyone know how to fix this issue?
[real@name tmp]$ tar -Jxf linux-3.12.6.tar.xz
[real@name tmp]$ cd linux-3.12.6/
[real@name linux-3.12.6]$ make ARCH=um defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --defconfig arch/x86/um/Kconfig
#
# configuration written to .config
#
[real@name linux-3.12.6]$ make ARCH=um linux 1>log.txt
arch/um/kernel/ptrace.c: In function ‘syscall_trace_enter’:
arch/um/kernel/ptrace.c:178:32: warning: ignoring return value of ‘tracehook_report_syscall_entry’, declared with attribute warn_unused_result [-Wunused-result]
tracehook_report_syscall_entry(regs);
^
[real@name linux-3.12.6]$
[real@name linux-3.12.6]$ cat gdb.txt
file linux
handle SIGSEGV pass nostop noprint
handle SIGUSR1 pass nostop noprint
b kmem_cache_init
b create_boot_cache
r ubda=/home/real/uml/linux-3.12.6/Fedora20-x86-root_fs mem=256m
[real@name linux-3.12.6]$
[real@name linux-3.12.6]$ gdb -q -x gdb.txt
Breakpoint 1 at 0x8050a57: file mm/slab.c, line 1512.
Breakpoint 2 at 0x804f7c5: file mm/slab_common.c, line 296.
Locating the bottom of the address space ... 0x10000
Locating the top of the address space ... 0xffffd000
Core dump limits :
soft - 0
hard - NONE
Checking that ptrace can change system call numbers...Detaching after fork from child process 16850.
OK
Checking syscall emulation patch for ptrace...Detaching after fork from child process 16851.
OK
Checking advanced syscall emulation patch for ptrace...Detaching after fork from child process 16852.
OK
Checking for tmpfs mount on /dev/shm.../dev/shm...nothing mounted on /dev/shm
Checking PROT_EXEC mmap in /tmp/...OK
Detaching after fork from child process 16853.
Checking for the skas3 patch in the host:
- /proc/mm...not found: No such file or directory
- PTRACE_FAULTINFO...Detaching after fork from child process 16854.
not found
- PTRACE_LDT...Detaching after fork from child process 16855.
not found
UML running in SKAS0 mode
Breakpoint 1, kmem_cache_init () at mm/slab.c:1512
1512 {
Missing separate debuginfos, use: debuginfo-install glibc-2.17-20.fc19.i686
(gdb) c
Continuing.
Breakpoint 2, create_boot_cache (s=0x82bdaf8 <kmem_cache_boot>, name=0x82650f5 "kmem_cache", size=92,
flags=8192) at mm/slab_common.c:296
296 {
(gdb) n
299 s->name = name;
(gdb)
296 {
(gdb)
299 s->name = name;
(gdb)
300 s->size = s->object_size = size;
(gdb)
301 s->align = calculate_alignment(flags, ARCH_KMALLOC_MINALIGN, size);
(gdb)
302 err = __kmem_cache_create(s, flags);
(gdb) s
__kmem_cache_create (cachep=0x82bdaf8 <kmem_cache_boot>, flags=8192) at mm/slab.c:2222
2222 {
(gdb) n
2226 size_t size = cachep->size;
(gdb)
2251 if (size & (BYTES_PER_WORD - 1)) {
(gdb)
2264 if (flags & SLAB_RED_ZONE) {
(gdb)
2273 if (ralign < cachep->align) {
(gdb)
2278 flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER);
(gdb)
2282 cachep->align = ralign;
(gdb)
2284 if (slab_is_available())
(gdb) p slab_state
$1 = DOWN
(gdb) where
#0 __kmem_cache_create (cachep=0x82bdaf8 <kmem_cache_boot>, flags=8192) at mm/slab.c:2284
#1 0x0804f7f6 in create_boot_cache (s=0x82bdaf8 <kmem_cache_boot>, name=0x82650f5 "kmem_cache",
size=92, flags=8192) at mm/slab_common.c:302
#2 0x08050b1b in kmem_cache_init () at mm/slab.c:1559
#3 0x08049486 in mm_init () at init/main.c:468
#4 start_kernel () at init/main.c:532
#5 0x0804a6d8 in start_kernel_proc (unused=0x0) at arch/um/kernel/skas/process.c:46
#6 0x08059323 in new_thread_handler () at arch/um/kernel/process.c:140
#7 0x00000000 in ?? ()
(gdb) l mm/slab.c:2284
2279 /*
2280 * 4) Store it.
2281 */
2282 cachep->align = ralign;
2283
2284 if (slab_is_available())
2285 gfp = GFP_KERNEL;
2286 else
2287 gfp = GFP_NOWAIT;
2288
(gdb) p slab_state
$2 = DOWN
(gdb) n
2285 gfp = GFP_KERNEL;
(gdb) n
2289 setup_node_pointer(cachep);
(gdb) n
2285 gfp = GFP_KERNEL;
Start from 2289, gdb start jump to wrong source line. GDB should jump to
"2287 gfp = GFP_NOWAIT;"
But it never hit it. And from here, gdb can't match the execuable UML kernel with source.
(gdb) n
2327 if ((size >= (PAGE_SIZE >> 3)) && !slab_early_init &&
And I found that "file" command says the file format is different.
[real@name mm]$ pwd
/tmp/linux-3.12.6/mm
[real@name mm]$ file *.c | sort -k 2
percpu-vm.c: ASCII text
filemap.c: assembler source, ASCII text
memcontrol.c: assembler source, ASCII text
ksm.c: C source, ASCII text
mmap.c: C source, ASCII text
rmap.c: C source, ASCII text
slab.c: C source, ASCII text
slob.c: C source, ASCII text
slub.c: C source, ASCII text
Why percpu-vm.c, filemap.c and memcontrol.c has different format?
thanks
|
|
From: Chen G. <gan...@gm...> - 2014-08-15 08:57:16
|
On 8/15/14 6:14, Chen Gang wrote: > On 08/15/2014 02:04 AM, Ralf Baechle wrote: >> > > OK, thanks, I assumes when support both endian, the default choice is > CPU_BIG_ENDIAN, although no default value for choice (originally, I did > worry about it). > >> So I think you can just drop the MIPS segment from your patch. >> > > If what I assumes is correct, what you said sounds reasonable to me. > > So for me, it is harmless to add CPU_*_ENDIAN explicitly, and can let other members don't need think of. By the way, for sh, it is almost the same case, except it contents the default value, for me, it is clear enough, so I skip sh architecture in this patch. Thanks -- Chen Gang Open, share, and attitude like air, water, and life which God blessed |
|
From: Chen G. <gan...@gm...> - 2014-08-15 02:02:47
|
On 8/15/14 9:52, Max Filippov wrote: > On Fri, Aug 15, 2014 at 5:47 AM, Max Filippov <jcm...@gm...> wrote: >> Hi Chen, >> >> On Thu, Aug 14, 2014 at 8:54 PM, Chen Gang <gan...@gm...> wrote: >>> Normal architectures: >>> >>> - Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc >>> >>> - Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300, >>> score, unicore32, x86 >>> >>> - Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh >>> >>> Special architectures: >>> >>> - Deside by compiler: microblaze, tile, xtensa. >>> >>> - Deside by building host: um >>> >>> - Next, need improve Kbuild to probe endian to deside whether need mark >>> __BUILDING_TIME_BIG_ENDIAN__ before real config. Please check this comments, thanks. >> >> [...] >> >>> diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig >>> index 3a617af..a3e8f7e 100644 >>> --- a/arch/xtensa/Kconfig >>> +++ b/arch/xtensa/Kconfig >>> @@ -22,6 +22,8 @@ config XTENSA >>> select HAVE_IRQ_TIME_ACCOUNTING >>> select HAVE_PERF_EVENTS >>> select COMMON_CLK >>> + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ >>> + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN >>> help >>> Xtensa processors are 32-bit RISC machines designed by Tensilica >>> primarily for embedded systems. These processors are both >> >> I've tested this part and it doesn't select neither CPU_BIG_ENDIAN, >> nor CPU_LITTLE_ENDIAN. And looking into the Kconfig/Kbuild I cound't > > Correction: it always selects CPU_LITTLE_ENDIAN, regardless of the > compiler endianness. > Yeah, at present, it always select CPU_LITTLE_ENDIAN, next, Kbuild need be improved for it, just the comments said. If this patch can be pass checking, I shall improve the Kbuild for it, also will modify some individual drivers to use CPU_*_ENDIAN. I guess, we need Cc to kbuild for getting more ideas, suggestions, or completions. THanks. -- Chen Gang Open, share, and attitude like air, water, and life which God blessed |
|
From: Max F. <jcm...@gm...> - 2014-08-15 01:52:15
|
On Fri, Aug 15, 2014 at 5:47 AM, Max Filippov <jcm...@gm...> wrote: > Hi Chen, > > On Thu, Aug 14, 2014 at 8:54 PM, Chen Gang <gan...@gm...> wrote: >> Normal architectures: >> >> - Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc >> >> - Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300, >> score, unicore32, x86 >> >> - Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh >> >> Special architectures: >> >> - Deside by compiler: microblaze, tile, xtensa. >> >> - Deside by building host: um >> >> - Next, need improve Kbuild to probe endian to deside whether need mark >> __BUILDING_TIME_BIG_ENDIAN__ before real config. > > [...] > >> diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig >> index 3a617af..a3e8f7e 100644 >> --- a/arch/xtensa/Kconfig >> +++ b/arch/xtensa/Kconfig >> @@ -22,6 +22,8 @@ config XTENSA >> select HAVE_IRQ_TIME_ACCOUNTING >> select HAVE_PERF_EVENTS >> select COMMON_CLK >> + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ >> + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN >> help >> Xtensa processors are 32-bit RISC machines designed by Tensilica >> primarily for embedded systems. These processors are both > > I've tested this part and it doesn't select neither CPU_BIG_ENDIAN, > nor CPU_LITTLE_ENDIAN. And looking into the Kconfig/Kbuild I cound't Correction: it always selects CPU_LITTLE_ENDIAN, regardless of the compiler endianness. > find anything related to __BUILDING_TIME_BIG_ENDIAN__. Am I missing > something? -- Thanks. -- Max |
|
From: Max F. <jcm...@gm...> - 2014-08-15 01:47:22
|
Hi Chen, On Thu, Aug 14, 2014 at 8:54 PM, Chen Gang <gan...@gm...> wrote: > Normal architectures: > > - Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc > > - Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300, > score, unicore32, x86 > > - Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh > > Special architectures: > > - Deside by compiler: microblaze, tile, xtensa. > > - Deside by building host: um > > - Next, need improve Kbuild to probe endian to deside whether need mark > __BUILDING_TIME_BIG_ENDIAN__ before real config. [...] > diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig > index 3a617af..a3e8f7e 100644 > --- a/arch/xtensa/Kconfig > +++ b/arch/xtensa/Kconfig > @@ -22,6 +22,8 @@ config XTENSA > select HAVE_IRQ_TIME_ACCOUNTING > select HAVE_PERF_EVENTS > select COMMON_CLK > + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ > + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN > help > Xtensa processors are 32-bit RISC machines designed by Tensilica > primarily for embedded systems. These processors are both I've tested this part and it doesn't select neither CPU_BIG_ENDIAN, nor CPU_LITTLE_ENDIAN. And looking into the Kconfig/Kbuild I cound't find anything related to __BUILDING_TIME_BIG_ENDIAN__. Am I missing something? -- Thanks. -- Max |
|
From: Chen G. <gan...@gm...> - 2014-08-15 01:25:43
|
On 8/15/14 7:12, Vineet Gupta wrote:
> On Thursday 14 August 2014 03:22 PM, Chen Gang wrote:
>> For many individual modules may need check CPU_LITTLE_ENDIAN or
>> CPU_BIG_ENDIAN, which is an architecture's attribute.
>>
>> Or they have to list many architectures which they support, which they
>> don't support. And still, it is not precise.
>>
>> For architecture API, endian is a main architecture's attribute which
>> may be used by outside, so every architecture need let outside know
>> about it, explicitly.
>
> I don't think that is correct. The modules need to use standard API e.g. swab
> which will take care of proper endian handling anyways. Why would a module do
> anything endian specific outside of those APIs.
>
For building time, modules can check endians with various API. But for
config time, at present, we have no related standard API for it.
> And again is this churn just theoretical or do you really have a issue at hand ! I
> would not accept a change for ARC unless you prove that something is broken (or
> atleast potentially broken) !
>
An issue for allmodconfig under microblaze, the original patch is below
(I guess, not only one module may match this case):
-------- Forwarded Message --------
Subject: [PATCH] drivers/isdn/hisax/Kconfig: Let HISAX_NETJET skip microblaze architecture
Date: Tue, 05 Aug 2014 02:24:09 +0800
From: Chen Gang <gan...@gm...>
To: is...@li...
CC: da...@da..., Jean Delvare <jde...@su...>, ne...@vg..., lin...@vg... <lin...@vg...>, mo...@mo...
For HISAX_NETJET, HISAX_NETJET_U or related config needs !__BIG_ENDIAN,
so skip microblaze, just like skip all other architectures which have
no CONFIG_*_ENDIAN.
The related error (with allmodconfig under microblaze):
CC [M] drivers/isdn/hisax/nj_s.o
drivers/isdn/hisax/nj_s.c: In function 'setup_netjet_s':
drivers/isdn/hisax/nj_s.c:265:2: error: #error "not running on big endian machines now"
#error "not running on big endian machines now"
^
Signed-off-by: Chen Gang <gan...@gm...>
---
drivers/isdn/hisax/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig
index 97465ac..eb83d94 100644
--- a/drivers/isdn/hisax/Kconfig
+++ b/drivers/isdn/hisax/Kconfig
@@ -237,7 +237,7 @@ config HISAX_MIC
config HISAX_NETJET
bool "NETjet card"
- depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
+ depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
depends on VIRT_TO_BUS
help
This enables HiSax support for the NetJet from Traverse
@@ -249,7 +249,7 @@ config HISAX_NETJET
config HISAX_NETJET_U
bool "NETspider U card"
- depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
+ depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
depends on VIRT_TO_BUS
help
This enables HiSax support for the Netspider U interface ISDN card
Thanks.
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed
|
|
From: Vineet G. <Vin...@sy...> - 2014-08-14 23:14:17
|
On Thursday 14 August 2014 03:22 PM, Chen Gang wrote: > For many individual modules may need check CPU_LITTLE_ENDIAN or > CPU_BIG_ENDIAN, which is an architecture's attribute. > > Or they have to list many architectures which they support, which they > don't support. And still, it is not precise. > > For architecture API, endian is a main architecture's attribute which > may be used by outside, so every architecture need let outside know > about it, explicitly. I don't think that is correct. The modules need to use standard API e.g. swab which will take care of proper endian handling anyways. Why would a module do anything endian specific outside of those APIs. And again is this churn just theoretical or do you really have a issue at hand ! I would not accept a change for ARC unless you prove that something is broken (or atleast potentially broken) ! -Vineet |
|
From: Chen G. <gan...@gm...> - 2014-08-14 22:23:00
|
On 08/15/2014 02:27 AM, Lennox Wu wrote: > I don't think it's necessary, what's the benfit? > > 2014-08-15 2:21 GMT+08:00 Vineet Gupta <Vin...@sy...>: > >> On Thursday 14 August 2014 09:55 AM, Chen Gang wrote: [...] >>> diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig >>> index 9596b0a..e939abd 100644 >>> --- a/arch/arc/Kconfig >>> +++ b/arch/arc/Kconfig >>> @@ -35,6 +35,7 @@ config ARC >>> select OF_EARLY_FLATTREE >>> select PERF_USE_VMALLOC >>> select HAVE_DEBUG_STACKOVERFLOW >>> + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN >> >> It is not clear what exactly are you trying to fix. What doesn't work w/o >> this >> patch ! >> For many individual modules may need check CPU_LITTLE_ENDIAN or CPU_BIG_ENDIAN, which is an architecture's attribute. Or they have to list many architectures which they support, which they don't support. And still, it is not precise. For architecture API, endian is a main architecture's attribute which may be used by outside, so every architecture need let outside know about it, explicitly. Thanks. -- Chen Gang Open share and attitude like air water and life which God blessed |
|
From: Chen G. <gan...@gm...> - 2014-08-14 22:15:10
|
On 08/15/2014 02:04 AM, Ralf Baechle wrote: > On Fri, Aug 15, 2014 at 12:54:53AM +0800, Chen Gang wrote: > >> Normal architectures: >> >> - Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc >> >> - Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300, >> score, unicore32, x86 >> >> - Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh > > Nak for MIPS. On MIPS Kconfig already always sets one of CPU_BIG_ENDIAN > and CPU_LITTLE_ENDIAN depending on platforms and where both endianess are > supported by a platform, user choice: > > config FOO > bool "foo" > select SYS_SUPPORTS_LITTLE_ENDIAN > > config FOO > bool "foo" > select SYS_SUPPORTS_BIG_ENDIAN > select SYS_SUPPORTS_LITTLE_ENDIAN > [...] > choice > prompt "Endianess selection" > help > Some MIPS machines can be configured for either little or big endian > byte order. These modes require different kernels and a different > Linux distribution. In general there is one preferred byteorder for a > particular system but some systems are just as commonly used in the > one or the other endianness. > > config CPU_BIG_ENDIAN > bool "Big endian" > depends on SYS_SUPPORTS_BIG_ENDIAN > > config CPU_LITTLE_ENDIAN > bool "Little endian" > depends on SYS_SUPPORTS_LITTLE_ENDIAN > help > > endchoice > OK, thanks, I assumes when support both endian, the default choice is CPU_BIG_ENDIAN, although no default value for choice (originally, I did worry about it). > So I think you can just drop the MIPS segment from your patch. > If what I assumes is correct, what you said sounds reasonable to me. Thanks. -- Chen Gang Open share and attitude like air water and life which God blessed |
|
From: Lennox Wu <len...@gm...> - 2014-08-14 18:27:20
|
I don't think it's necessary, what's the benfit? 2014-08-15 2:21 GMT+08:00 Vineet Gupta <Vin...@sy...>: > On Thursday 14 August 2014 09:55 AM, Chen Gang wrote: > > Normal architectures: > > > > - Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc > > > > - Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300, > > score, unicore32, x86 > > > > - Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh > > > > Special architectures: > > > > - Deside by compiler: microblaze, tile, xtensa. > > > > - Deside by building host: um > > > > - Next, need improve Kbuild to probe endian to deside whether need mark > > __BUILDING_TIME_BIG_ENDIAN__ before real config. > > > > Another improvements: > > > > - score: use '\t' instead of ' '. > > > > - s390: sort the select value in alpha order. > > > > Signed-off-by: Chen Gang <gan...@gm...> > > --- > > arch/alpha/Kconfig | 1 + > > arch/arc/Kconfig | 1 + > > arch/arm/Kconfig | 1 + > > arch/arm64/Kconfig | 1 + > > arch/avr32/Kconfig | 1 + > > arch/blackfin/Kconfig | 1 + > > arch/c6x/Kconfig | 1 + > > arch/cris/Kconfig | 1 + > > arch/frv/Kconfig | 1 + > > arch/hexagon/Kconfig | 1 + > > arch/ia64/Kconfig | 1 + > > arch/m32r/Kconfig | 1 + > > arch/m68k/Kconfig | 1 + > > arch/metag/Kconfig | 1 + > > arch/microblaze/Kconfig | 2 ++ > > arch/mips/Kconfig | 1 + > > arch/mn10300/Kconfig | 1 + > > arch/openrisc/Kconfig | 1 + > > arch/parisc/Kconfig | 1 + > > arch/powerpc/Kconfig | 1 + > > arch/s390/Kconfig | 3 ++- > > arch/score/Kconfig | 21 +++++++++++---------- > > arch/sparc/Kconfig | 1 + > > arch/tile/Kconfig | 2 ++ > > arch/um/Kconfig.common | 2 ++ > > arch/unicore32/Kconfig | 1 + > > arch/x86/Kconfig | 1 + > > arch/xtensa/Kconfig | 2 ++ > > init/Kconfig | 6 ++++++ > > 29 files changed, 49 insertions(+), 11 deletions(-) > > > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > > index b7ff9a3..1cb7426 100644 > > --- a/arch/alpha/Kconfig > > +++ b/arch/alpha/Kconfig > > @@ -27,6 +27,7 @@ config ALPHA > > select MODULES_USE_ELF_RELA > > select ODD_RT_SIGACTION > > select OLD_SIGSUSPEND > > + select CPU_LITTLE_ENDIAN > > help > > The Alpha is a 64-bit general-purpose processor designed and > > marketed by the Digital Equipment Corporation of blessed memory, > > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig > > index 9596b0a..e939abd 100644 > > --- a/arch/arc/Kconfig > > +++ b/arch/arc/Kconfig > > @@ -35,6 +35,7 @@ config ARC > > select OF_EARLY_FLATTREE > > select PERF_USE_VMALLOC > > select HAVE_DEBUG_STACKOVERFLOW > > + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN > > It is not clear what exactly are you trying to fix. What doesn't work w/o > this > patch ! > > -Vineet > |
|
From: Ralf B. <ra...@li...> - 2014-08-14 18:22:39
|
On Fri, Aug 15, 2014 at 12:54:53AM +0800, Chen Gang wrote:
> Normal architectures:
>
> - Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
>
> - Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
> score, unicore32, x86
>
> - Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Nak for MIPS. On MIPS Kconfig already always sets one of CPU_BIG_ENDIAN
and CPU_LITTLE_ENDIAN depending on platforms and where both endianess are
supported by a platform, user choice:
config FOO
bool "foo"
select SYS_SUPPORTS_LITTLE_ENDIAN
config FOO
bool "foo"
select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_LITTLE_ENDIAN
[...]
choice
prompt "Endianess selection"
help
Some MIPS machines can be configured for either little or big endian
byte order. These modes require different kernels and a different
Linux distribution. In general there is one preferred byteorder for a
particular system but some systems are just as commonly used in the
one or the other endianness.
config CPU_BIG_ENDIAN
bool "Big endian"
depends on SYS_SUPPORTS_BIG_ENDIAN
config CPU_LITTLE_ENDIAN
bool "Little endian"
depends on SYS_SUPPORTS_LITTLE_ENDIAN
help
endchoice
So I think you can just drop the MIPS segment from your patch.
Ralf
|
|
From: Vineet G. <Vin...@sy...> - 2014-08-14 18:22:21
|
On Thursday 14 August 2014 09:55 AM, Chen Gang wrote: > Normal architectures: > > - Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc > > - Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300, > score, unicore32, x86 > > - Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh > > Special architectures: > > - Deside by compiler: microblaze, tile, xtensa. > > - Deside by building host: um > > - Next, need improve Kbuild to probe endian to deside whether need mark > __BUILDING_TIME_BIG_ENDIAN__ before real config. > > Another improvements: > > - score: use '\t' instead of ' '. > > - s390: sort the select value in alpha order. > > Signed-off-by: Chen Gang <gan...@gm...> > --- > arch/alpha/Kconfig | 1 + > arch/arc/Kconfig | 1 + > arch/arm/Kconfig | 1 + > arch/arm64/Kconfig | 1 + > arch/avr32/Kconfig | 1 + > arch/blackfin/Kconfig | 1 + > arch/c6x/Kconfig | 1 + > arch/cris/Kconfig | 1 + > arch/frv/Kconfig | 1 + > arch/hexagon/Kconfig | 1 + > arch/ia64/Kconfig | 1 + > arch/m32r/Kconfig | 1 + > arch/m68k/Kconfig | 1 + > arch/metag/Kconfig | 1 + > arch/microblaze/Kconfig | 2 ++ > arch/mips/Kconfig | 1 + > arch/mn10300/Kconfig | 1 + > arch/openrisc/Kconfig | 1 + > arch/parisc/Kconfig | 1 + > arch/powerpc/Kconfig | 1 + > arch/s390/Kconfig | 3 ++- > arch/score/Kconfig | 21 +++++++++++---------- > arch/sparc/Kconfig | 1 + > arch/tile/Kconfig | 2 ++ > arch/um/Kconfig.common | 2 ++ > arch/unicore32/Kconfig | 1 + > arch/x86/Kconfig | 1 + > arch/xtensa/Kconfig | 2 ++ > init/Kconfig | 6 ++++++ > 29 files changed, 49 insertions(+), 11 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index b7ff9a3..1cb7426 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -27,6 +27,7 @@ config ALPHA > select MODULES_USE_ELF_RELA > select ODD_RT_SIGACTION > select OLD_SIGSUSPEND > + select CPU_LITTLE_ENDIAN > help > The Alpha is a 64-bit general-purpose processor designed and > marketed by the Digital Equipment Corporation of blessed memory, > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig > index 9596b0a..e939abd 100644 > --- a/arch/arc/Kconfig > +++ b/arch/arc/Kconfig > @@ -35,6 +35,7 @@ config ARC > select OF_EARLY_FLATTREE > select PERF_USE_VMALLOC > select HAVE_DEBUG_STACKOVERFLOW > + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN It is not clear what exactly are you trying to fix. What doesn't work w/o this patch ! -Vineet |
|
From: Chen G. <gan...@gm...> - 2014-08-14 16:55:32
|
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86
- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Special architectures:
- Deside by compiler: microblaze, tile, xtensa.
- Deside by building host: um
- Next, need improve Kbuild to probe endian to deside whether need mark
__BUILDING_TIME_BIG_ENDIAN__ before real config.
Another improvements:
- score: use '\t' instead of ' '.
- s390: sort the select value in alpha order.
Signed-off-by: Chen Gang <gan...@gm...>
---
arch/alpha/Kconfig | 1 +
arch/arc/Kconfig | 1 +
arch/arm/Kconfig | 1 +
arch/arm64/Kconfig | 1 +
arch/avr32/Kconfig | 1 +
arch/blackfin/Kconfig | 1 +
arch/c6x/Kconfig | 1 +
arch/cris/Kconfig | 1 +
arch/frv/Kconfig | 1 +
arch/hexagon/Kconfig | 1 +
arch/ia64/Kconfig | 1 +
arch/m32r/Kconfig | 1 +
arch/m68k/Kconfig | 1 +
arch/metag/Kconfig | 1 +
arch/microblaze/Kconfig | 2 ++
arch/mips/Kconfig | 1 +
arch/mn10300/Kconfig | 1 +
arch/openrisc/Kconfig | 1 +
arch/parisc/Kconfig | 1 +
arch/powerpc/Kconfig | 1 +
arch/s390/Kconfig | 3 ++-
arch/score/Kconfig | 21 +++++++++++----------
arch/sparc/Kconfig | 1 +
arch/tile/Kconfig | 2 ++
arch/um/Kconfig.common | 2 ++
arch/unicore32/Kconfig | 1 +
arch/x86/Kconfig | 1 +
arch/xtensa/Kconfig | 2 ++
init/Kconfig | 6 ++++++
29 files changed, 49 insertions(+), 11 deletions(-)
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index b7ff9a3..1cb7426 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -27,6 +27,7 @@ config ALPHA
select MODULES_USE_ELF_RELA
select ODD_RT_SIGACTION
select OLD_SIGSUSPEND
+ select CPU_LITTLE_ENDIAN
help
The Alpha is a 64-bit general-purpose processor designed and
marketed by the Digital Equipment Corporation of blessed memory,
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 9596b0a..e939abd 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -35,6 +35,7 @@ config ARC
select OF_EARLY_FLATTREE
select PERF_USE_VMALLOC
select HAVE_DEBUG_STACKOVERFLOW
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
config TRACE_IRQFLAGS_SUPPORT
def_bool y
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 32cbbd5..3a806b3 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -12,6 +12,7 @@ config ARM
select ARCH_WANT_IPC_PARSE_VERSION
select BUILDTIME_EXTABLE_SORT if MMU
select CLONE_BACKWARDS
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
select CPU_PM if (SUSPEND || CPU_IDLE)
select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 62b4ae1..c5a91de 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -17,6 +17,7 @@ config ARM64
select BUILDTIME_EXTABLE_SORT
select CLONE_BACKWARDS
select COMMON_CLK
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
select CPU_PM if (SUSPEND || CPU_IDLE)
select DCACHE_WORD_ACCESS
select GENERIC_CLOCKEVENTS
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index b6878eb..fab44ee 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -17,6 +17,7 @@ config AVR32
select GENERIC_CLOCKEVENTS
select HAVE_MOD_ARCH_SPECIFIC
select MODULES_USE_ELF_RELA
+ select CPU_BIG_ENDIAN
help
AVR32 is a high-performance 32-bit RISC microprocessor core,
designed for cost-sensitive embedded applications, with particular
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index ed30699..348f16d 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -40,6 +40,7 @@ config BLACKFIN
select HAVE_MOD_ARCH_SPECIFIC
select MODULES_USE_ELF_RELA
select HAVE_DEBUG_STACKOVERFLOW
+ select CPU_LITTLE_ENDIAN
config GENERIC_CSUM
def_bool y
diff --git a/arch/c6x/Kconfig b/arch/c6x/Kconfig
index 77ea09b..7e74d14 100644
--- a/arch/c6x/Kconfig
+++ b/arch/c6x/Kconfig
@@ -17,6 +17,7 @@ config C6X
select OF_EARLY_FLATTREE
select GENERIC_CLOCKEVENTS
select MODULES_USE_ELF_RELA
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
config MMU
def_bool n
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index 52731e2..405a097 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -52,6 +52,7 @@ config CRIS
select CLONE_BACKWARDS2
select OLD_SIGSUSPEND
select OLD_SIGACTION
+ select CPU_LITTLE_ENDIAN
config HZ
int
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index 34aa193..aa21ccc 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -14,6 +14,7 @@ config FRV
select OLD_SIGSUSPEND3
select OLD_SIGACTION
select HAVE_DEBUG_STACKOVERFLOW
+ select CPU_BIG_ENDIAN
config ZONE_DMA
bool
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig
index 4dc89d1..ee91285 100644
--- a/arch/hexagon/Kconfig
+++ b/arch/hexagon/Kconfig
@@ -28,6 +28,7 @@ config HEXAGON
select MODULES_USE_ELF_RELA
select GENERIC_CPU_DEVICES
select HAVE_DMA_ATTRS
+ select CPU_LITTLE_ENDIAN
---help---
Qualcomm Hexagon is a processor architecture designed for high
performance and low power across a wide variety of applications.
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index c84c88b..54f32c7 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -49,6 +49,7 @@ config IA64
select MODULES_USE_ELF_RELA
select ARCH_USE_CMPXCHG_LOCKREF
select HAVE_ARCH_AUDITSYSCALL
+ select CPU_LITTLE_ENDIAN
default y
help
The Itanium Processor Family is Intel's 64-bit successor to
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index 9e44bbd..1932483 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -16,6 +16,7 @@ config M32R
select ARCH_USES_GETTIMEOFFSET
select MODULES_USE_ELF_RELA
select HAVE_DEBUG_STACKOVERFLOW
+ select CPU_BIG_ENDIAN if !CPU_LITTLE_ENDIAN
config SBUS
bool
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 87b7c75..7a7fe25 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -23,6 +23,7 @@ config M68K
select MODULES_USE_ELF_RELA
select OLD_SIGSUSPEND3
select OLD_SIGACTION
+ select CPU_BIG_ENDIAN
config RWSEM_GENERIC_SPINLOCK
bool
diff --git a/arch/metag/Kconfig b/arch/metag/Kconfig
index 0b389a8..e57c6a0 100644
--- a/arch/metag/Kconfig
+++ b/arch/metag/Kconfig
@@ -29,6 +29,7 @@ config METAG
select OF
select OF_EARLY_FLATTREE
select SPARSE_IRQ
+ select CPU_LITTLE_ENDIAN
config STACKTRACE_SUPPORT
def_bool y
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 40e1c1d..d80ae78 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -7,6 +7,8 @@ config MICROBLAZE
select CLKSRC_OF
select CLONE_BACKWARDS3
select COMMON_CLK
+ select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS
select GENERIC_CPU_DEVICES
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 900c7e5..671d822 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -52,6 +52,7 @@ config MIPS
select HAVE_CC_STACKPROTECTOR
select CPU_PM if CPU_IDLE
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
menu "Machine selection"
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index a648de1..60fb249 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -13,6 +13,7 @@ config MN10300
select OLD_SIGSUSPEND3
select OLD_SIGACTION
select HAVE_DEBUG_STACKOVERFLOW
+ select CPU_LITTLE_ENDIAN
config AM33_2
def_bool n
diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig
index 88e8336..4757b7d 100644
--- a/arch/openrisc/Kconfig
+++ b/arch/openrisc/Kconfig
@@ -23,6 +23,7 @@ config OPENRISC
select MODULES_USE_ELF_RELA
select HAVE_DEBUG_STACKOVERFLOW
select OR1K_PIC
+ select CPU_BIG_ENDIAN
config MMU
def_bool y
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 6e75e20..dc82137 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -29,6 +29,7 @@ config PARISC
select TTY # Needed for pdc_cons.c
select HAVE_DEBUG_STACKOVERFLOW
select HAVE_ARCH_AUDITSYSCALL
+ select CPU_BIG_ENDIAN
help
The PA-RISC microprocessor is designed by Hewlett-Packard and used
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 4bc7b62..644c6d4 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -147,6 +147,7 @@ config PPC
select ARCH_USE_CMPXCHG_LOCKREF if PPC64
select HAVE_ARCH_AUDITSYSCALL
select ARCH_SUPPORTS_ATOMIC_RMW
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
config GENERIC_CSUM
def_bool CPU_LITTLE_ENDIAN
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 05c78bb..8691c6f 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -62,6 +62,7 @@ config S390
def_bool y
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
+ select ARCH_HAS_SG_CHAIN
select ARCH_HAVE_NMI_SAFE_CMPXCHG
select ARCH_INLINE_READ_LOCK
select ARCH_INLINE_READ_LOCK_BH
@@ -97,6 +98,7 @@ config S390
select ARCH_WANT_IPC_PARSE_VERSION
select BUILDTIME_EXTABLE_SORT
select CLONE_BACKWARDS2
+ select CPU_BIG_ENDIAN
select GENERIC_CLOCKEVENTS
select GENERIC_CPU_DEVICES if !SMP
select GENERIC_FIND_FIRST_BIT
@@ -145,7 +147,6 @@ config S390
select TTY
select VIRT_CPU_ACCOUNTING
select VIRT_TO_BUS
- select ARCH_HAS_SG_CHAIN
config SCHED_OMIT_FRAME_POINTER
def_bool y
diff --git a/arch/score/Kconfig b/arch/score/Kconfig
index 4ac8cae..713b290 100644
--- a/arch/score/Kconfig
+++ b/arch/score/Kconfig
@@ -1,19 +1,20 @@
menu "Machine selection"
config SCORE
- def_bool y
- select GENERIC_IRQ_SHOW
- select GENERIC_IOMAP
- select GENERIC_ATOMIC64
- select HAVE_MEMBLOCK
- select HAVE_MEMBLOCK_NODE_MAP
- select ARCH_DISCARD_MEMBLOCK
- select GENERIC_CPU_DEVICES
- select GENERIC_CLOCKEVENTS
- select HAVE_MOD_ARCH_SPECIFIC
+ def_bool y
+ select GENERIC_IRQ_SHOW
+ select GENERIC_IOMAP
+ select GENERIC_ATOMIC64
+ select HAVE_MEMBLOCK
+ select HAVE_MEMBLOCK_NODE_MAP
+ select ARCH_DISCARD_MEMBLOCK
+ select GENERIC_CPU_DEVICES
+ select GENERIC_CLOCKEVENTS
+ select HAVE_MOD_ARCH_SPECIFIC
select VIRT_TO_BUS
select MODULES_USE_ELF_REL
select CLONE_BACKWARDS
+ select CPU_LITTLE_ENDIAN
choice
prompt "System type"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index a537816..9de09e6 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -43,6 +43,7 @@ config SPARC
select ODD_RT_SIGACTION
select OLD_SIGSUSPEND
select ARCH_HAS_SG_CHAIN
+ select CPU_BIG_ENDIAN
config SPARC32
def_bool !64BIT
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index 7fcd492..e042479 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -27,6 +27,8 @@ config TILE
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
select HAVE_DEBUG_STACKOVERFLOW
select ARCH_WANT_FRAME_POINTERS
+ select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
# FIXME: investigate whether we need/want these options.
# select HAVE_IOREMAP_PROT
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common
index 6915d28..f696ec2 100644
--- a/arch/um/Kconfig.common
+++ b/arch/um/Kconfig.common
@@ -8,6 +8,8 @@ config UML
select GENERIC_IO
select GENERIC_CLOCKEVENTS
select TTY # Needed for line.c
+ select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
config MMU
bool
diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig
index 928237a..02be244 100644
--- a/arch/unicore32/Kconfig
+++ b/arch/unicore32/Kconfig
@@ -18,6 +18,7 @@ config UNICORE32
select ARCH_WANT_FRAME_POINTERS
select GENERIC_IOMAP
select MODULES_USE_ELF_REL
+ select CPU_LITTLE_ENDIAN
help
UniCore-32 is 32-bit Instruction Set Architecture,
including a series of low-power-consumption RISC chip
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 1164b7d..9b83e33 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -136,6 +136,7 @@ config X86
select HAVE_ACPI_APEI if ACPI
select HAVE_ACPI_APEI_NMI if ACPI
select ACPI_LEGACY_TABLES_LOOKUP if ACPI
+ select CPU_LITTLE_ENDIAN
config INSTRUCTION_DECODER
def_bool y
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 3a617af..a3e8f7e 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -22,6 +22,8 @@ config XTENSA
select HAVE_IRQ_TIME_ACCOUNTING
select HAVE_PERF_EVENTS
select COMMON_CLK
+ select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__
+ select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
help
Xtensa processors are 32-bit RISC machines designed by Tensilica
primarily for embedded systems. These processors are both
diff --git a/init/Kconfig b/init/Kconfig
index 9565224..6dd3b20 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -23,6 +23,12 @@ config CONSTRUCTORS
config IRQ_WORK
bool
+config CPU_LITTLE_ENDIAN
+ bool
+
+config CPU_BIG_ENDIAN
+ bool
+
config BUILDTIME_EXTABLE_SORT
bool
--
1.7.11.7
|
|
From: Real N. <enj...@gm...> - 2014-07-24 08:16:33
|
hi, When trace the UML linux kernel with gprof, it seems gprof missing some functions. There are new_thread_handler and fork_handler in "arch/um/kernel/process.c". gprof catchs the new_thread_handler function, but there is no sign about fork_handler. Because the two functions are in the same file, so it is not kernel configuration issue. I'm sure the two functions have been executed. And new_thread_handler call a few functions, such as, kernel_init and kthreadd. gprof catch kthreadd but missing kernel_init. I traced the UML kernel with gdb, so I'm sure kernel_init called by new_thread_handler. I search with google, but failed to get useful information about gprof missing function issue. Is there any clue/suggestion how to make gprof catch all functions? thanks |