Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
b5240b14
Commit
b5240b14
authored
Jun 03, 2018
by
Michael Ellerman
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'topic/kbuild' into next
Merge in some commits we're sharing with the kbuild tree.
parents
481c63ac
1421dc6d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
64 additions
and
28 deletions
+64
-28
arch/powerpc/Makefile
arch/powerpc/Makefile
+17
-14
arch/powerpc/boot/Makefile
arch/powerpc/boot/Makefile
+11
-5
arch/powerpc/kernel/vdso32/Makefile
arch/powerpc/kernel/vdso32/Makefile
+11
-4
arch/powerpc/tools/gcc-check-mprofile-kernel.sh
arch/powerpc/tools/gcc-check-mprofile-kernel.sh
+8
-4
scripts/recordmcount.pl
scripts/recordmcount.pl
+17
-1
No files found.
arch/powerpc/Makefile
View file @
b5240b14
...
@@ -17,17 +17,18 @@ HAS_BIARCH := $(call cc-option-yn, -m32)
...
@@ -17,17 +17,18 @@ HAS_BIARCH := $(call cc-option-yn, -m32)
# Set default 32 bits cross compilers for vdso and boot wrapper
# Set default 32 bits cross compilers for vdso and boot wrapper
CROSS32_COMPILE
?=
CROSS32_COMPILE
?=
CROSS32CC
:=
$(CROSS32_COMPILE)
gcc
CROSS32AR
:=
$(CROSS32_COMPILE)
ar
ifeq
($(HAS_BIARCH),y)
ifeq
($(HAS_BIARCH),y)
ifeq
($(CROSS32_COMPILE),)
ifeq
($(CROSS32_COMPILE),)
CROSS32CC
:=
$(CC)
-m32
ifdef
CONFIG_PPC32
KBUILD_ARFLAGS
+=
--target
=
elf32-powerpc
# These options will be overridden by any -mcpu option that the CPU
# or platform code sets later on the command line, but they are needed
# to set a sane 32-bit cpu target for the 64-bit cross compiler which
# may default to the wrong ISA.
KBUILD_CFLAGS
+=
-mcpu
=
powerpc
KBUILD_AFLAGS
+=
-mcpu
=
powerpc
endif
endif
endif
endif
endif
export
CROSS32CC
CROSS32AR
ifeq
($(CROSS_COMPILE),)
ifeq
($(CROSS_COMPILE),)
KBUILD_DEFCONFIG
:=
$(
shell
uname
-m
)
_defconfig
KBUILD_DEFCONFIG
:=
$(
shell
uname
-m
)
_defconfig
...
@@ -74,13 +75,15 @@ endif
...
@@ -74,13 +75,15 @@ endif
endif
endif
ifeq
($(CONFIG_CPU_LITTLE_ENDIAN),y)
ifeq
($(CONFIG_CPU_LITTLE_ENDIAN),y)
override
LD
+=
-EL
KBUILD_CFLAGS
+=
-mlittle-endian
LDFLAGS
+=
-EL
LDEMULATION
:=
lppc
LDEMULATION
:=
lppc
GNUTARGET
:=
powerpcle
GNUTARGET
:=
powerpcle
MULTIPLEWORD
:=
-mno-multiple
MULTIPLEWORD
:=
-mno-multiple
KBUILD_CFLAGS_MODULE
+=
$(
call
cc-option,-mno-save-toc-indirect
)
KBUILD_CFLAGS_MODULE
+=
$(
call
cc-option,-mno-save-toc-indirect
)
else
else
override
LD
+=
-EB
KBUILD_CFLAGS
+=
$(
call
cc-option,-mbig-endian
)
LDFLAGS
+=
-EB
LDEMULATION
:=
ppc
LDEMULATION
:=
ppc
GNUTARGET
:=
powerpc
GNUTARGET
:=
powerpc
MULTIPLEWORD
:=
-mmultiple
MULTIPLEWORD
:=
-mmultiple
...
@@ -93,19 +96,19 @@ aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mabi=elfv1)
...
@@ -93,19 +96,19 @@ aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mabi=elfv1)
aflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mabi
=
elfv2
aflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mabi
=
elfv2
endif
endif
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mlittle-endian
cflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mbig-endian
)
ifneq
($(cc-name),clang)
ifneq
($(cc-name),clang)
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mno-strict-align
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mno-strict-align
endif
endif
cflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mbig-endian
)
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mlittle-endian
aflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mbig-endian
)
aflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mbig-endian
)
aflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mlittle-endian
aflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mlittle-endian
ifeq
($(HAS_BIARCH),y)
ifeq
($(HAS_BIARCH),y)
override
AS
+=
-a
$(BITS)
KBUILD_CFLAGS
+=
-m
$(BITS)
override
LD
+=
-m
elf
$(BITS)$(LDEMULATION
)
KBUILD_AFLAGS
+=
-m
$(BITS)
-Wl
,-a
$(BITS
)
override
CC
+=
-m
$(BITS
)
LDFLAGS
+=
-m
elf
$(BITS)$(LDEMULATION
)
KBUILD_ARFLAGS
+=
--target
=
elf
$(BITS)
-
$(GNUTARGET)
KBUILD_ARFLAGS
+=
--target
=
elf
$(BITS)
-
$(GNUTARGET)
endif
endif
...
...
arch/powerpc/boot/Makefile
View file @
b5240b14
...
@@ -23,19 +23,23 @@ all: $(obj)/zImage
...
@@ -23,19 +23,23 @@ all: $(obj)/zImage
compress-$(CONFIG_KERNEL_GZIP)
:=
CONFIG_KERNEL_GZIP
compress-$(CONFIG_KERNEL_GZIP)
:=
CONFIG_KERNEL_GZIP
compress-$(CONFIG_KERNEL_XZ)
:=
CONFIG_KERNEL_XZ
compress-$(CONFIG_KERNEL_XZ)
:=
CONFIG_KERNEL_XZ
ifdef
CROSS32_COMPILE
BOOTCC
:=
$(CROSS32_COMPILE)
gcc
BOOTAR
:=
$(CROSS32_COMPILE)
ar
else
BOOTCC
:=
$(CC)
BOOTAR
:=
$(AR)
endif
BOOTCFLAGS
:=
-Wall
-Wundef
-Wstrict-prototypes
-Wno-trigraphs
\
BOOTCFLAGS
:=
-Wall
-Wundef
-Wstrict-prototypes
-Wno-trigraphs
\
-fno-strict-aliasing
-Os
-msoft-float
-pipe
\
-fno-strict-aliasing
-Os
-msoft-float
-pipe
\
-fomit-frame-pointer
-fno-builtin
-fPIC
-nostdinc
\
-fomit-frame-pointer
-fno-builtin
-fPIC
-nostdinc
\
-D
$
(
compress-y
)
-D
$
(
compress-y
)
BOOTCC
:=
$(CC)
ifdef
CONFIG_PPC64_BOOT_WRAPPER
ifdef
CONFIG_PPC64_BOOT_WRAPPER
BOOTCFLAGS
+=
-m64
BOOTCFLAGS
+=
-m64
else
else
BOOTCFLAGS
+=
-m32
BOOTCFLAGS
+=
-m32
ifdef
CROSS32_COMPILE
BOOTCC
:=
$(CROSS32_COMPILE)
gcc
endif
endif
endif
BOOTCFLAGS
+=
-isystem
$(
shell
$(BOOTCC)
-print-file-name
=
include
)
BOOTCFLAGS
+=
-isystem
$(
shell
$(BOOTCC)
-print-file-name
=
include
)
...
@@ -49,6 +53,8 @@ endif
...
@@ -49,6 +53,8 @@ endif
BOOTAFLAGS
:=
-D__ASSEMBLY__
$(BOOTCFLAGS)
-traditional
-nostdinc
BOOTAFLAGS
:=
-D__ASSEMBLY__
$(BOOTCFLAGS)
-traditional
-nostdinc
BOOTARFLAGS
:=
-cr
$(KBUILD_ARFLAGS)
ifdef
CONFIG_DEBUG_INFO
ifdef
CONFIG_DEBUG_INFO
BOOTCFLAGS
+=
-g
BOOTCFLAGS
+=
-g
endif
endif
...
@@ -202,7 +208,7 @@ quiet_cmd_bootas = BOOTAS $@
...
@@ -202,7 +208,7 @@ quiet_cmd_bootas = BOOTAS $@
cmd_bootas
=
$(BOOTCC)
-Wp
,-MD,
$(depfile)
$(BOOTAFLAGS)
-c
-o
$@
$<
cmd_bootas
=
$(BOOTCC)
-Wp
,-MD,
$(depfile)
$(BOOTAFLAGS)
-c
-o
$@
$<
quiet_cmd_bootar
=
BOOTAR
$@
quiet_cmd_bootar
=
BOOTAR
$@
cmd_bootar
=
$(
CROSS32AR)
-cr
$(KBUILD_
ARFLAGS)
$@
.
$$$$
$(
filter-out
FORCE,
$^
)
;
mv
$@
.
$$$$
$@
cmd_bootar
=
$(
BOOTAR)
$(BOOT
ARFLAGS)
$@
.
$$$$
$(
filter-out
FORCE,
$^
)
;
mv
$@
.
$$$$
$@
$(obj-libfdt)
:
$(obj)/%.o: $(srctree)/scripts/dtc/libfdt/%.c FORCE
$(obj-libfdt)
:
$(obj)/%.o: $(srctree)/scripts/dtc/libfdt/%.c FORCE
$(
call
if_changed_dep,bootcc
)
$(
call
if_changed_dep,bootcc
)
...
...
arch/powerpc/kernel/vdso32/Makefile
View file @
b5240b14
...
@@ -8,8 +8,15 @@ obj-vdso32 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o \
...
@@ -8,8 +8,15 @@ obj-vdso32 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o \
# Build rules
# Build rules
ifeq
($(CONFIG_PPC32),y)
ifdef
CROSS32_COMPILE
CROSS32CC
:=
$(CC)
VDSOCC
:=
$(CROSS32_COMPILE)
gcc
else
VDSOCC
:=
$(CC)
endif
CC32FLAGS
:=
ifdef
CONFIG_PPC64
CC32FLAGS
+=
-m32
endif
endif
targets
:=
$
(
obj-vdso32
)
vdso32.so vdso32.so.dbg
targets
:=
$
(
obj-vdso32
)
vdso32.so vdso32.so.dbg
...
@@ -45,9 +52,9 @@ $(obj-vdso32): %.o: %.S FORCE
...
@@ -45,9 +52,9 @@ $(obj-vdso32): %.o: %.S FORCE
# actual build commands
# actual build commands
quiet_cmd_vdso32ld
=
VDSO32L
$@
quiet_cmd_vdso32ld
=
VDSO32L
$@
cmd_vdso32ld
=
$(
CROSS32CC)
$(c_flags
)
-o
$@
-Wl
,-T
$(
filter
%.lds,
$^
)
$(
filter
%.o,
$^
)
cmd_vdso32ld
=
$(
VDSOCC)
$(c_flags)
$(CC32FLAGS
)
-o
$@
-Wl
,-T
$(
filter
%.lds,
$^
)
$(
filter
%.o,
$^
)
quiet_cmd_vdso32as
=
VDSO32A
$@
quiet_cmd_vdso32as
=
VDSO32A
$@
cmd_vdso32as
=
$(
CROSS32CC)
$(a_flags
)
-c
-o
$@
$<
cmd_vdso32as
=
$(
VDSOCC)
$(a_flags)
$(CC32FLAGS
)
-c
-o
$@
$<
# install commands for the unstripped file
# install commands for the unstripped file
quiet_cmd_vdso_install
=
INSTALL
$@
quiet_cmd_vdso_install
=
INSTALL
$@
...
...
arch/powerpc/tools/gcc-check-mprofile-kernel.sh
View file @
b5240b14
...
@@ -7,17 +7,21 @@ set -o pipefail
...
@@ -7,17 +7,21 @@ set -o pipefail
# To debug, uncomment the following line
# To debug, uncomment the following line
# set -x
# set -x
# -mprofile-kernel is only supported on 64le, so this should not be invoked
# for other targets. Therefore we can pass in -m64 and -mlittle-endian
# explicitly, to take care of toolchains defaulting to other targets.
# Test whether the compile option -mprofile-kernel exists and generates
# Test whether the compile option -mprofile-kernel exists and generates
# profiling code (ie. a call to _mcount()).
# profiling code (ie. a call to _mcount()).
echo
"int func() { return 0; }"
|
\
echo
"int func() { return 0; }"
|
\
$*
-
S
-x
c
-O2
-p
-mprofile-kernel
-
-o
- 2> /dev/null |
\
$*
-
m64
-mlittle-endian
-S
-x
c
-O2
-p
-mprofile-kernel
-
-o
-
\
grep
-q
"_mcount"
2> /dev/null |
grep
-q
"_mcount"
# Test whether the notrace attribute correctly suppresses calls to _mcount().
# Test whether the notrace attribute correctly suppresses calls to _mcount().
echo
-e
"#include <linux/compiler.h>
\n
notrace int func() { return 0; }"
|
\
echo
-e
"#include <linux/compiler.h>
\n
notrace int func() { return 0; }"
|
\
$*
-
S
-x
c
-O2
-p
-mprofile-kernel
-
-o
- 2> /dev/null |
\
$*
-
m64
-mlittle-endian
-S
-x
c
-O2
-p
-mprofile-kernel
-
-o
-
\
grep
-q
"_mcount"
&&
\
2> /dev/null |
grep
-q
"_mcount"
&&
\
exit
1
exit
1
echo
"OK"
echo
"OK"
...
...
scripts/recordmcount.pl
View file @
b5240b14
...
@@ -266,13 +266,29 @@ if ($arch eq "x86_64") {
...
@@ -266,13 +266,29 @@ if ($arch eq "x86_64") {
$objcopy
.=
"
-O elf32-sh-linux
";
$objcopy
.=
"
-O elf32-sh-linux
";
}
elsif
(
$arch
eq
"
powerpc
")
{
}
elsif
(
$arch
eq
"
powerpc
")
{
my
$ldemulation
;
$local_regex
=
"
^[0-9a-fA-F]+
\\
s+t
\\
s+(
\\
.?
\\
S+)
";
$local_regex
=
"
^[0-9a-fA-F]+
\\
s+t
\\
s+(
\\
.?
\\
S+)
";
# See comment in the sparc64 section for why we use '\w'.
# See comment in the sparc64 section for why we use '\w'.
$function_regex
=
"
^([0-9a-fA-F]+)
\\
s+<(
\\
.?
\\
w*?)>:
";
$function_regex
=
"
^([0-9a-fA-F]+)
\\
s+<(
\\
.?
\\
w*?)>:
";
$mcount_regex
=
"
^
\\
s*([0-9a-fA-F]+):.*
\\
s
\\
.?_mcount
\
$
";
$mcount_regex
=
"
^
\\
s*([0-9a-fA-F]+):.*
\\
s
\\
.?_mcount
\
$
";
if
(
$endian
eq
"
big
")
{
$cc
.=
"
-mbig-endian
";
$ld
.=
"
-EB
";
$ldemulation
=
"
ppc
"
}
else
{
$cc
.=
"
-mlittle-endian
";
$ld
.=
"
-EL
";
$ldemulation
=
"
lppc
"
}
if
(
$bits
==
64
)
{
if
(
$bits
==
64
)
{
$type
=
"
.quad
";
$type
=
"
.quad
";
$cc
.=
"
-m64
";
$ld
.=
"
-m elf64
"
.
$ldemulation
.
"
";
}
else
{
$cc
.=
"
-m32
";
$ld
.=
"
-m elf32
"
.
$ldemulation
.
"
";
}
}
}
elsif
(
$arch
eq
"
arm
")
{
}
elsif
(
$arch
eq
"
arm
")
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment