All of lore.kernel.org
 help / color / mirror / Atom feed
* [uml-devel] Kallsyms on UML
@ 2004-07-26  0:27 Sonny Rao
  2004-07-26  3:57 ` Mulyadi-Santosa
  0 siblings, 1 reply; 7+ messages in thread
From: Sonny Rao @ 2004-07-26  0:27 UTC (permalink / raw)
  To: user-mode-linux-devel

Hi, I'm fairly new to UML, and I've begun using it for development of some
kernel patches, and I am really impressed w/ UML!  

I had one question, I noticed that on stack traces I'm not getting
symbols even though I had CONFIG_KALLSYMS enabled.  I looked into it a
bit more and it appears that the kernel build system is running
scripts/kallsyms but not getting any symbols in the output in
.tmp_kallsyms[12].S  But If I run the "linux" binary through kallsyms
instead of vmlinux, I do get back what seems like a proper symbol
table.  Is it that simple to make it work?

Also, I changed arch/um/kernel/sysrq.c to call print_symbol() in the
show_trace function, and I seemed to get decent backtraces, but I'm
not sure if they're 100% accurate.

Thanks,

Sonny


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [uml-devel] Kallsyms on UML
  2004-07-26  0:27 [uml-devel] Kallsyms on UML Sonny Rao
@ 2004-07-26  3:57 ` Mulyadi-Santosa
  2004-07-26  6:01   ` Sonny Rao
  0 siblings, 1 reply; 7+ messages in thread
From: Mulyadi-Santosa @ 2004-07-26  3:57 UTC (permalink / raw)
  To: Sonny Rao; +Cc: user-mode-linux-devel

Hello Sonny

> I had one question, I noticed that on stack traces I'm 
>not getting
> symbols even though I had CONFIG_KALLSYMS enabled.  I 
>looked into it a
> bit more and it appears that the kernel build system is 

Ehm, have you done EXPORT_SYMBOL(your_proc) or 
EXPORT_SYMBOL(your_variable). I am not sure is this what 
you want, but I do this on my trial kernel module (well, I 
am still kernel newbie after all :-)) )

Hope it helps

regards

Mulyadi
===========================================================================================
Netkuis Instan untuk wilayah Bandung (kode area 022) - SD,SMP,SMA berhadiah total puluhan juta rupiah... periode I dimulai 1 April 2004
===========================================================================================


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [uml-devel] Kallsyms on UML
  2004-07-26  3:57 ` Mulyadi-Santosa
@ 2004-07-26  6:01   ` Sonny Rao
  2004-07-26 13:45     ` Mulyadi Santosa
  2004-07-26 14:18     ` [patch] " BlaisorBlade
  0 siblings, 2 replies; 7+ messages in thread
From: Sonny Rao @ 2004-07-26  6:01 UTC (permalink / raw)
  To: Mulyadi-Santosa; +Cc: user-mode-linux-devel

On Mon, Jul 26, 2004 at 10:57:05AM +0700, Mulyadi-Santosa wrote:
> Hello Sonny
> 
> >I had one question, I noticed that on stack traces I'm 
> >not getting
> >symbols even though I had CONFIG_KALLSYMS enabled.  I 
> >looked into it a
> >bit more and it appears that the kernel build system is 
> 
> Ehm, have you done EXPORT_SYMBOL(your_proc) or 
> EXPORT_SYMBOL(your_variable). I am not sure is this what 
> you want, but I do this on my trial kernel module (well, I 
> am still kernel newbie after all :-)) )

I was referring to the stack traces which appear after an Oops or
panic, or if you is simply call dump_stack() somewhere.  Normally, if
CONFIG_KALLSYMS isn't defined in the kernel's .config file, then those
stack traces don't show function names, just the address of the
function, which is somewhat annoying to decode :)  

Fortunately, an in-kernel symbol table has been added in 2.6 which
does the work for you.  It doesn't seem to work out of the box on UML
on 2.6, and I was just wondering if it would be trivial to add that
support to UML.  It seems that way to me, and its a rather useful
feature for people using UML as a kernel development tool.

Sonny


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [uml-devel] Kallsyms on UML
  2004-07-26  6:01   ` Sonny Rao
@ 2004-07-26 13:45     ` Mulyadi Santosa
  2004-07-26 14:18     ` [patch] " BlaisorBlade
  1 sibling, 0 replies; 7+ messages in thread
From: Mulyadi Santosa @ 2004-07-26 13:45 UTC (permalink / raw)
  To: Sonny Rao; +Cc: user-mode-linux-devel

hello Sonny :-)

> I was referring to the stack traces which appear after an Oops or
> panic, or if you is simply call dump_stack() somewhere.  Normally, if
> CONFIG_KALLSYMS isn't defined in the kernel's .config file, then those
> stack traces don't show function names, just the address of the
> function, which is somewhat annoying to decode :)

Oh...sorry...looks like I am misinterpreting your e-mail :-)

ehm, AFAIK, stack frame pointer also determine the precision of stack dump, so 
make sure you don't include -fomit-frame-pointer

CONFIG_KALLSYMS, ehm, for 2.6, right? well, I still use 2.4....that's why I 
miss that option :-)

> Fortunately, an in-kernel symbol table has been added in 2.6 which
> does the work for you.  It doesn't seem to work out of the box on UML
> on 2.6, and I was just wondering if it would be trivial to add that
> support to UML.  It seems that way to me, and its a rather useful
> feature for people using UML as a kernel development tool.

Yes, I agree. Bulls-eye stack dump is definitely useful to pin point 
problem....and of course...you still need to fully understand the inner work. 
it reminds me to Linus' wise word "Use the source,Luke"  :-). Well, somehow I 
need to pratice my Force's power to achieve Jedi senior warrior :-)))

regards

Mulyadi



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [patch] Re: [uml-devel] Kallsyms on UML
  2004-07-26  6:01   ` Sonny Rao
  2004-07-26 13:45     ` Mulyadi Santosa
@ 2004-07-26 14:18     ` BlaisorBlade
  2004-07-26 14:40       ` Mulyadi Santosa
  1 sibling, 1 reply; 7+ messages in thread
From: BlaisorBlade @ 2004-07-26 14:18 UTC (permalink / raw)
  To: Sonny Rao, Mulyadi-Santosa; +Cc: user-mode-linux-devel, Jeff Dike

[-- Attachment #1: Type: text/plain, Size: 2003 bytes --]

Alle 08:01, lunedì 26 luglio 2004, Sonny Rao ha scritto:
> On Mon, Jul 26, 2004 at 10:57:05AM +0700, Mulyadi-Santosa wrote:
> > Hello Sonny
> >
> > >I had one question, I noticed that on stack traces I'm
> > >not getting
> > >symbols even though I had CONFIG_KALLSYMS enabled.  I
> > >looked into it a
> > >bit more and it appears that the kernel build system is

> I was referring to the stack traces which appear after an Oops or
> panic, or if you is simply call dump_stack() somewhere.  Normally, if
> CONFIG_KALLSYMS isn't defined in the kernel's .config file, then those
> stack traces don't show function names, just the address of the
> function, which is somewhat annoying to decode :)

> Fortunately, an in-kernel symbol table has been added in 2.6 which
> does the work for you.  It doesn't seem to work out of the box on UML
> on 2.6, and I was just wondering if it would be trivial to add that
> support to UML.  It seems that way to me, and its a rather useful
> feature for people using UML as a kernel development tool.

Yes, exactly. (It is not matter of EXPORT_SYMBOL, you're right).

You got the right fixes... I've just been working on those ones, and the only 
difference is that I removed the vmlinux -> linux step (with the attached 
patches, the binary to run is vmlinux), to avoid doing again the kallsyms 
trick. Note that to get kallsyms right, you must follow the instructions in 
the main Makefile (which means running it three times which special care).

However, on any 2.6 UML, run cat /dev/kmem (which will panic, the fix is known 
but yet to submit) and say if you can get the stacktrace. For some reason, I 
cannot (even if dump_stack() is invoked); nothing is printed. Seems like the 
printk() are lost (maybe some tricks with bust_spinlock() are needed).

Note: the Set_cflags one is just a cleanup, I send it because without it 
you'll maybe get rejects.
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729

[-- Attachment #2: uml-Set_cflags_before_arch_Makefile.patch --]
[-- Type: text/x-diff, Size: 2522 bytes --]


If arch/$(ARCH)/Makefile is included before adding -O2 (and the rest) to
CFLAGS, I must duplicate the addition of it to USER_CFLAGS. So let's fix this.
Also, the below code is useless, since if CONFIG_DEBUG_INFO is y, then
CONFIG_FRAME_POINTER is always y.

ifeq ($(CONFIG_DEBUG_INFO),y)
CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
endif


Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
---

 uml-linux-2.6.7-paolo/Makefile         |    4 ++--
 uml-linux-2.6.7-paolo/arch/um/Makefile |   21 ---------------------
 2 files changed, 2 insertions(+), 23 deletions(-)

diff -puN Makefile~uml-Set_cflags_before_arch_Makefile Makefile
--- uml-linux-2.6.7/Makefile~uml-Set_cflags_before_arch_Makefile	2004-07-25 15:56:52.676053752 +0200
+++ uml-linux-2.6.7-paolo/Makefile	2004-07-25 15:56:52.680053144 +0200
@@ -447,8 +447,6 @@ else
 include/linux/autoconf.h: ;
 endif
 
-include $(srctree)/arch/$(ARCH)/Makefile
-
 ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 CFLAGS		+= -Os
 else
@@ -466,6 +464,8 @@ endif
 # warn about C99 declaration after statement
 CFLAGS += $(call check_gcc,-Wdeclaration-after-statement,)
 
+include $(srctree)/arch/$(ARCH)/Makefile
+
 #
 # INSTALL_PATH specifies where to place the updated kernel and system map
 # images.  Uncomment if you want to place them anywhere other than root.
diff -puN arch/um/Makefile~uml-Set_cflags_before_arch_Makefile arch/um/Makefile
--- uml-linux-2.6.7/arch/um/Makefile~uml-Set_cflags_before_arch_Makefile	2004-07-25 15:56:52.677053600 +0200
+++ uml-linux-2.6.7-paolo/arch/um/Makefile	2004-07-25 15:56:52.680053144 +0200
@@ -13,10 +13,6 @@ OS := $(shell uname -s)
 # EXTRAVERSION...
 MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
 
-ifeq ($(CONFIG_DEBUG_INFO),y)
-CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
-endif
-
 core-y			+= $(ARCH_DIR)/kernel/		 \
 			   $(ARCH_DIR)/drivers/          \
 			   $(ARCH_DIR)/sys-$(SUBARCH)/
@@ -138,23 +134,6 @@ USER_CFLAGS := $(patsubst -D__KERNEL__,,
 # To get a definition of F_SETSIG
 USER_CFLAGS += -D_GNU_SOURCE
 
-# From main Makefile, these options are set after including the ARCH makefile.
-# So copy them here.
-
-ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
-USER_CFLAGS		+= -Os
-else
-USER_CFLAGS		+= -O2
-endif
-
-ifndef CONFIG_FRAME_POINTER
-USER_CFLAGS		+= -fomit-frame-pointer
-endif
-
-ifdef CONFIG_DEBUG_INFO
-USER_CFLAGS		+= -g
-endif
-
 CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.s \
 	$(ARCH_DIR)/dyn_link.ld.s $(ARCH_DIR)/include/uml-config.h \
 	$(GEN_HEADERS)
_

[-- Attachment #3: uml-use-kallsyms.patch --]
[-- Type: text/x-diff, Size: 1773 bytes --]


This patch makes UML use print_symbol when dumping the stack. It is not yet
complete (the i386 version uses the frame pointers to walk the stack, for
instance).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
---

 uml-linux-2.6.7-paolo/arch/um/kernel/sysrq.c   |    4 +++-
 uml-linux-2.6.7-paolo/arch/um/kernel/um_arch.c |    6 +++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff -puN arch/um/kernel/sysrq.c~uml-use-kallsyms arch/um/kernel/sysrq.c
--- uml-linux-2.6.7/arch/um/kernel/sysrq.c~uml-use-kallsyms	2004-07-25 21:53:23.197200256 +0200
+++ uml-linux-2.6.7-paolo/arch/um/kernel/sysrq.c	2004-07-25 21:54:17.627925528 +0200
@@ -6,6 +6,7 @@
 #include "linux/sched.h"
 #include "linux/kernel.h"
 #include "linux/module.h"
+#include "linux/kallsyms.h"
 #include "asm/page.h"
 #include "asm/processor.h"
 #include "sysrq.h"
@@ -26,7 +27,8 @@ void show_trace(unsigned long * stack)
 		if (kernel_text_address(addr)) {
 			if (i && ((i % 6) == 0))
 				printk("\n   ");
-			printk("[<%08lx>] ", addr);
+			printk(" [<%08lx>] ", addr);
+			print_symbol("%s\n", addr);
 			i++;
                 }
         }
diff -puN arch/um/kernel/um_arch.c~uml-use-kallsyms arch/um/kernel/um_arch.c
--- uml-linux-2.6.7/arch/um/kernel/um_arch.c~uml-use-kallsyms	2004-07-25 22:03:19.815500488 +0200
+++ uml-linux-2.6.7-paolo/arch/um/kernel/um_arch.c	2004-07-25 22:06:10.488554240 +0200
@@ -394,9 +394,9 @@ extern int uml_exitcode;
 static int panic_exit(struct notifier_block *self, unsigned long unused1,
 		      void *unused2)
 {
-#ifdef CONFIG_MAGIC_SYSRQ
-	handle_sysrq('p', &current->thread.regs, NULL);
-#endif
+	bust_spinlocks(1);
+	show_regs(&(current->thread.regs));
+	bust_spinlocks(0);
 	uml_exitcode = 1;
 	machine_halt();
 	return(0);
_

[-- Attachment #4: uml-Single_Linking_Step.patch --]
[-- Type: text/x-diff, Size: 7009 bytes --]



Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
---

 uml-linux-2.6.7-paolo/Makefile               |   25 +++++++---
 uml-linux-2.6.7-paolo/arch/um/Makefile       |   63 ++++++++++++---------------
 uml-linux-2.6.7-paolo/arch/um/Makefile-i386  |    6 --
 uml-linux-2.6.7/arch/um/kernel/vmlinux.lds.S |   11 ----
 4 files changed, 50 insertions(+), 55 deletions(-)

diff -puN arch/um/Makefile~uml-Single_Linking_Step arch/um/Makefile
--- uml-linux-2.6.7/arch/um/Makefile~uml-Single_Linking_Step	2004-07-25 20:44:47.851827848 +0200
+++ uml-linux-2.6.7-paolo/arch/um/Makefile	2004-07-25 20:44:47.857826936 +0200
@@ -27,13 +27,6 @@ ARCH_SYMLINKS = include/asm-um/arch $(AR
 
 GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h
 
-# This target adds dependencies to "prepare". They are defined in the included
-# Makefiles (see Makefile-i386).
-
-.PHONY: sys_prepare
-sys_prepare:
-	@:
-
 MAKEFILE-$(CONFIG_MODE_TT) += Makefile-tt
 MAKEFILE-$(CONFIG_MODE_SKAS) += Makefile-skas
 
@@ -75,14 +68,8 @@ endif
 
 include/linux/version.h: arch/$(ARCH)/Makefile
 
-$(ARCH_DIR)/vmlinux.lds.S :
-	touch $@
-
-prepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS)
-
-LDFLAGS_vmlinux = -r
-
-vmlinux: $(ARCH_DIR)/main.o 
+prepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS) \
+	 $(ARCH_DIR)/kernel/vmlinux.lds.S $(ARCH_DIR)/main.o
 
 # These aren't in Makefile-tt because they are needed in the !CONFIG_MODE_TT +
 # CONFIG_MODE_SKAS + CONFIG_STATIC_LINK case.
@@ -105,6 +92,10 @@ endif
 endif
 endif
 
+$(ARCH_DIR)/kernel/vmlinux.lds.S :
+	rm -f $@
+	ln -s ../$(LD_SCRIPT-y:.s=.S) $@
+
 CPP_MODE_TT := $(shell [ "$(CONFIG_MODE_TT)" = "y" ] && echo -DMODE_TT)
 CONFIG_KERNEL_STACK_ORDER ?= 2
 STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] )
@@ -114,16 +105,22 @@ AFLAGS_vmlinux.lds.o = $(shell echo -U$(
 	-DELF_FORMAT=\"$(ELF_FORMAT)\" $(CPP_MODE_TT) \
 	-DKERNEL_STACK_SIZE=$(STACK_SIZE))
 
-export AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
-
-LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
-
-#$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.s=.S) scripts FORCE
-#	$(call if_changed_dep,as_s_S)
-
-linux: vmlinux $(LD_SCRIPT-y)
-	$(CC) -Wl,-T,$(LD_SCRIPT-y) $(LINK-y) $(LINK_WRAPS) \
-		-o linux $(ARCH_DIR)/main.o vmlinux -L/usr/lib -lutil
+#LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
+#
+#linux: vmlinux $(LD_SCRIPT-y)
+#	$(CC) -Wl,-T,$(LD_SCRIPT-y) $(LINK-y) $(LINK_WRAPS) \
+#		-o linux $(ARCH_DIR)/main.o vmlinux -L/usr/lib -lutil
+
+define cmd_vmlinux__
+	$(CC) $(CFLAGS_vmlinux) $(LINK-y) $(LINK_WRAPS) \
+	$(ARCH_DIR)/main.o $(vmlinux-init-objs) \
+	-Wl,--start-group \
+	$(vmlinux-main-objs) \
+	-Wl,--end-group \
+	-L/usr/lib -lutil \
+	$(vmlinux-special-objs) \
+	-o $@
+endef
 
 USER_CFLAGS := $(patsubst -I%,,$(CFLAGS))
 USER_CFLAGS := $(patsubst -Derrno=kernel_errno,,$(USER_CFLAGS))
@@ -141,7 +138,7 @@ CLEAN_FILES += linux x.i gmon.out $(ARCH
 MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
 	$(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS))
 
-$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c sys_prepare
+$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
 	@ echo '  MAIN    $@'
 	@ $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
 
@@ -182,15 +179,15 @@ $(ARCH_DIR)/include/kern_constants.h : $
 	$(call filechk,gen_header)
 
 $(ARCH_DIR)/util/mk_task $(ARCH_DIR)/util/mk_constants : $(ARCH_DIR)/util \
-	sys_prepare FORCE ;
+	FORCE ;
 
-$(ARCH_DIR)/util: FORCE
+$(ARCH_DIR)/util: $(SYS_DIR)/sc.h FORCE
 	$(Q)$(MAKE) $(build)=$@
 
 export SUBARCH USER_CFLAGS OS 
 
-all: linux
-
-define archhelp
-  echo  '* linux	- Binary kernel image (./linux)'
-endef
+#all: linux
+#
+#define archhelp
+#  echo  '* linux	- Binary kernel image (./linux)'
+#endef
diff -puN Makefile~uml-Single_Linking_Step Makefile
--- uml-linux-2.6.7/Makefile~uml-Single_Linking_Step	2004-07-25 20:44:47.853827544 +0200
+++ uml-linux-2.6.7-paolo/Makefile	2004-07-25 20:44:47.858826784 +0200
@@ -513,20 +513,30 @@ libs-y		:= $(libs-y1) $(libs-y2)
 #       we cannot yet know if we will need to relink vmlinux.
 #	So we descend into init/ inside the rule for vmlinux again.
 head-y += $(HEAD)
-vmlinux-objs := $(head-y) $(init-y) $(core-y) $(libs-y) $(drivers-y) $(net-y)
+# If an arch (like UML) uses its own linking command for vmlinux, supply
+# it everything to avoid it forgetting some objects.
+vmlinux-init-objs := $(head-y) $(init-y)
+vmlinux-main-objs := $(core-y) $(libs-y) $(drivers-y) $(net-y)
+vmlinux-special-objs = $(filter .tmp_kallsyms%,$^)
+# List of dependencies for vmlinux
+vmlinux-objs := $(vmlinux-init-objs) $(vmlinux-main-objs)
 
 quiet_cmd_vmlinux__ = LD      $@
+#Allow UML to use gcc to link vmlinux.
+#The command below is parametrized enough that you will never change it;
+#but if you still want to change it, update every arch accordingly
+#(at least UML, maybe other ones will use it, too).
+ifeq ($(cmd_vmlinux__),)
 define cmd_vmlinux__
-	$(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) $(head-y) $(init-y) \
+	$(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) \
+	$(vmlinux-init-objs) \
 	--start-group \
-	$(core-y) \
-	$(libs-y) \
-	$(drivers-y) \
-	$(net-y) \
+	$(vmlinux-main-objs) \
 	--end-group \
-	$(filter .tmp_kallsyms%,$^) \
+	$(vmlinux-special-objs) \
 	-o $@
 endef
+endif
 
 #	set -e makes the rule exit immediately on error
 
@@ -550,6 +560,7 @@ define rule_vmlinux
 endef
 
 LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.s
+CFLAGS_vmlinux += -Wl,-T,arch/$(ARCH)/kernel/vmlinux.lds.s
 
 #	Generate section listing all symbols and add it into vmlinux
 #	It's a three stage process:
diff -puN arch/um/Makefile-i386~uml-Single_Linking_Step arch/um/Makefile-i386
--- uml-linux-2.6.7/arch/um/Makefile-i386~uml-Single_Linking_Step	2004-07-25 20:44:47.854827392 +0200
+++ uml-linux-2.6.7-paolo/arch/um/Makefile-i386	2004-07-25 20:44:47.858826784 +0200
@@ -16,8 +16,6 @@ SYS_UTIL_DIR	:= $(ARCH_DIR)/sys-i386/uti
 
 SYS_HEADERS = $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h
 
-sys_prepare: $(SYS_DIR)/sc.h
-
 prepare: $(SYS_HEADERS)
 
 filechk_$(SYS_DIR)/sc.h := $(SYS_UTIL_DIR)/mk_sc
@@ -30,10 +28,10 @@ filechk_$(SYS_DIR)/thread.h := $(SYS_UTI
 $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread 
 	$(call filechk,$@)
 
-$(SYS_UTIL_DIR)/mk_sc: scripts/basic/fixdep include/config/MARKER FORCE ; 
+$(SYS_UTIL_DIR)/mk_sc: scripts/basic/fixdep include/config/MARKER FORCE
 	$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
 
-$(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) sys_prepare FORCE ; 
+$(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) FORCE
 	$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
 
 $(SYS_UTIL_DIR): include/asm FORCE
diff -L arch/um/kernel/vmlinux.lds.S -puN arch/um/kernel/vmlinux.lds.S~uml-Single_Linking_Step /dev/null
--- uml-linux-2.6.7/arch/um/kernel/vmlinux.lds.S
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-#include <asm-generic/vmlinux.lds.h>
-	
-OUTPUT_FORMAT(ELF_FORMAT)
-OUTPUT_ARCH(ELF_ARCH)
-ENTRY(_start)
-jiffies = jiffies_64;
-
-SECTIONS
-{
-#include "asm/common.lds.S"
-}
_

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] Re: [uml-devel] Kallsyms on UML
  2004-07-26 14:18     ` [patch] " BlaisorBlade
@ 2004-07-26 14:40       ` Mulyadi Santosa
  2004-07-26 14:54         ` BlaisorBlade
  0 siblings, 1 reply; 7+ messages in thread
From: Mulyadi Santosa @ 2004-07-26 14:40 UTC (permalink / raw)
  To: BlaisorBlade, Sonny Rao; +Cc: user-mode-linux-devel, Jeff Dike

hello

> Yes, exactly. (It is not matter of EXPORT_SYMBOL, you're right).
Thanks for correcting me :-)

BTW, why vmlinux might miss the stack trace? is it just because it missed 
kallsysms?

> However, on any 2.6 UML, run cat /dev/kmem (which will panic, the fix is
> known but yet to submit) and say if you can get the stacktrace. For some
> reason, I cannot (even if dump_stack() is invoked); nothing is printed.
> Seems like the printk() are lost (maybe some tricks with bust_spinlock()
> are needed).

BTW, interesting to read tricks to beat lost printk, Paolo....can you share 
your trick to defeat it? Just using bust_spinlock? or....just crazy 
idea...force console/tty flush?

regards

Mulyadi



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] Re: [uml-devel] Kallsyms on UML
  2004-07-26 14:40       ` Mulyadi Santosa
@ 2004-07-26 14:54         ` BlaisorBlade
  0 siblings, 0 replies; 7+ messages in thread
From: BlaisorBlade @ 2004-07-26 14:54 UTC (permalink / raw)
  To: a_mulyadi, Sonny Rao; +Cc: user-mode-linux-devel, Jeff Dike

Alle 16:40, lunedì 26 luglio 2004, Mulyadi Santosa ha scritto:
> hello
>
> > Yes, exactly. (It is not matter of EXPORT_SYMBOL, you're right).
>
> Thanks for correcting me :-)

> BTW, why vmlinux might miss the stack trace? is it just because it missed
> kallsysms?
The 2 patches handle the two problems:
1) Kallsyms didn't work (the .tmp_kallsyms were empty because 
arch/um/kernel/vmlinux.lds.S did not set _stext and _sinittext, which are 
used by the kallsyms tool)

2) The UML dump_stack() version didn't use the kallsyms facilities.

> > However, on any 2.6 UML, run cat /dev/kmem (which will panic, the fix is
> > known but yet to submit) and say if you can get the stacktrace. For some
> > reason, I cannot (even if dump_stack() is invoked); nothing is printed.
> > Seems like the printk() are lost (maybe some tricks with bust_spinlock()
> > are needed).
>
> BTW, interesting to read tricks to beat lost printk, Paolo....can you share
> your trick to defeat it? Just using bust_spinlock? or....just crazy
> idea...force console/tty flush?
Well, in the patch I tried to use bust_spinlock(), but it didn't work. I have 
just a raw idea of what it does, but I followed the panic() code. It could 
even be a console/tty flush, maybe, but I don't know to what those words 
translate. Or maybe even moving machine_halt() to later, somehow (which is 
called by the UML function panic_exit(), grep for it).

-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21&alloc_id\x10040&opÌk
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-07-26 14:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-26  0:27 [uml-devel] Kallsyms on UML Sonny Rao
2004-07-26  3:57 ` Mulyadi-Santosa
2004-07-26  6:01   ` Sonny Rao
2004-07-26 13:45     ` Mulyadi Santosa
2004-07-26 14:18     ` [patch] " BlaisorBlade
2004-07-26 14:40       ` Mulyadi Santosa
2004-07-26 14:54         ` BlaisorBlade

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.