lkml.org 
[lkml]   [2013]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] kernel/modsign_certificate.S: use real contents instead of macro GLOBAL()
For some architectures, tool chain is not smart enough to recognize the
macro with multiple lines (e.g. arc tool chain), and for common ".S"
file, this kind of macro is also rarely used.

So expand the related contents of macro to let it pass compiling (can
use "arc-elf32-objdump -x" to know about it).

The related error (allmodconfig for arc):

LD init/built-in.o
kernel/built-in.o: In function `load_module_signing_keys':
kernel/modsign_pubkey.c:66: undefined reference to `modsign_certificate_list'
kernel/modsign_pubkey.c:71: undefined reference to `modsign_certificate_list_end'
kernel/modsign_pubkey.c:67: undefined reference to `modsign_certificate_list_end'

The related tool chain information:

[root@gchenlinux linux-next]# arc-elf32-as -v
GNU assembler version 2.23.2 (arc-elf32) using BFD version (GNU Binutils) 2.23.2
[root@gchenlinux linux-next]# arc-elf32-ld -v
GNU ld (GNU Binutils) 2.23.2
[root@gchenlinux linux-next]# arc-elf32-gcc -v
Using built-in specs.
COLLECT_GCC=arc-elf32-gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/arc-elf32/4.8.0/lto-wrapper
Target: arc-elf32
Configured with: ../gcc/configure --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no target_configargs=enable_vtable_verify=yes --target=arc-elf32 --with-cpu=arc700 : (reconfigured) ../gcc/configure --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no target_configargs=enable_vtable_verify=yes --target=arc-elf32 --with-cpu=arc700 : (reconfigured) ../gcc/configure --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no target_configargs=enable_vtable_verify=yes --target=arc-elf32 --with-cpu=arc700 --disable-multilib --with-headers=../newlib/newlib/libc/include
Thread model: single
gcc version 4.8.0 (GCC)


Signed-off-by: Chen Gang <gang.chen@asianux.com>
---
kernel/modsign_certificate.S | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
index 4a9a86d..1967dcd 100644
--- a/kernel/modsign_certificate.S
+++ b/kernel/modsign_certificate.S
@@ -1,12 +1,10 @@
#include <linux/export.h>

-#define GLOBAL(name) \
- .globl VMLINUX_SYMBOL(name); \
- VMLINUX_SYMBOL(name):
-
.section ".init.data","aw"

-GLOBAL(modsign_certificate_list)
+ .globl VMLINUX_SYMBOL(modsign_certificate_list)
+VMLINUX_SYMBOL(modsign_certificate_list):
.incbin "signing_key.x509"
.incbin "extra_certificates"
-GLOBAL(modsign_certificate_list_end)
+ .globl VMLINUX_SYMBOL(modsign_certificate_list_end)
+VMLINUX_SYMBOL(modsign_certificate_list_end):
--
1.7.7.6

\
 
 \ /
  Last update: 2013-10-24 08:01    [W:0.135 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site