Skip to content

Commit

Permalink
cris: Fix section mismatches in architecture startup code
Browse files Browse the repository at this point in the history
Section mismatches can now result in build failures.
As result, cris:allnoconfig fails to build as follows.

WARNING: modpost: Found 7 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
FATAL: modpost: Section mismatches detected.
Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them.

Part of the problem is that references from .text to .init.text
are not permitted, and such references are used in cris startup code.
Since references from .head.text to .init.text are permitted, move
cris startup code to a new section .head.text.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com>
  • Loading branch information
Guenter Roeck authored and Jesper Nilsson committed Dec 15, 2015
1 parent 56edefc commit f9f3f86
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
6 changes: 4 additions & 2 deletions arch/cris/arch-v10/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
*
*/

#include <linux/init.h>

#define ASSEMBLER_MACROS_ONLY
/* The IO_* macros use the ## token concatenation operator, so
-traditional must not be used when assembling this file. */
Expand All @@ -25,7 +27,7 @@
.globl romfs_in_flash
.globl swapper_pg_dir

.text
__HEAD

;; This is the entry point of the kernel. We are in supervisor mode.
;; 0x00000000 if Flash, 0x40004000 if DRAM
Expand Down Expand Up @@ -159,7 +161,7 @@ _inflash0:

;; Put this in a suitable section where we can reclaim storage
;; after init.
.section ".init.text", "ax"
__INIT
_inflash:
#ifdef CONFIG_ETRAX_ETHERNET
;; Start MII clock to make sure it is running when tranceiver is reset
Expand Down
6 changes: 4 additions & 2 deletions arch/cris/arch-v32/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
* Copyright (C) 2003, Axis Communications AB
*/

#include <linux/init.h>

#define ASSEMBLER_MACROS_ONLY

/*
Expand Down Expand Up @@ -36,7 +38,7 @@
.global nand_boot
.global swapper_pg_dir

.text
__HEAD
tstart:
;; This is the entry point of the kernel. The CPU is currently in
;; supervisor mode.
Expand Down Expand Up @@ -177,7 +179,7 @@ _inflash0:

;; Put the following in a section so that storage for it can be
;; reclaimed after init is finished.
.section ".init.text", "ax"
__INIT

_inflash:

Expand Down
1 change: 1 addition & 0 deletions arch/cris/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ SECTIONS
_stext = .;
__stext = .;
.text : {
HEAD_TEXT
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
Expand Down

0 comments on commit f9f3f86

Please sign in to comment.