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
nexedi
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)
# Set default 32 bits cross compilers for vdso and boot wrapper
CROSS32_COMPILE
?=
CROSS32CC
:=
$(CROSS32_COMPILE)
gcc
CROSS32AR
:=
$(CROSS32_COMPILE)
ar
ifeq
($(HAS_BIARCH),y)
ifeq
($(CROSS32_COMPILE),)
CROSS32CC
:=
$(CC)
-m32
KBUILD_ARFLAGS
+=
--target
=
elf32-powerpc
ifdef
CONFIG_PPC32
# 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
export
CROSS32CC
CROSS32AR
ifeq
($(CROSS_COMPILE),)
KBUILD_DEFCONFIG
:=
$(
shell
uname
-m
)
_defconfig
...
...
@@ -74,13 +75,15 @@ endif
endif
ifeq
($(CONFIG_CPU_LITTLE_ENDIAN),y)
override
LD
+=
-EL
KBUILD_CFLAGS
+=
-mlittle-endian
LDFLAGS
+=
-EL
LDEMULATION
:=
lppc
GNUTARGET
:=
powerpcle
MULTIPLEWORD
:=
-mno-multiple
KBUILD_CFLAGS_MODULE
+=
$(
call
cc-option,-mno-save-toc-indirect
)
else
override
LD
+=
-EB
KBUILD_CFLAGS
+=
$(
call
cc-option,-mbig-endian
)
LDFLAGS
+=
-EB
LDEMULATION
:=
ppc
GNUTARGET
:=
powerpc
MULTIPLEWORD
:=
-mmultiple
...
...
@@ -93,19 +96,19 @@ aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mabi=elfv1)
aflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mabi
=
elfv2
endif
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mlittle-endian
cflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mbig-endian
)
ifneq
($(cc-name),clang)
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mno-strict-align
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_LITTLE_ENDIAN)
+=
-mlittle-endian
ifeq
($(HAS_BIARCH),y)
override
AS
+=
-a
$(BITS)
override
LD
+=
-m
elf
$(BITS)$(LDEMULATION
)
override
CC
+=
-m
$(BITS
)
KBUILD_CFLAGS
+=
-m
$(BITS)
KBUILD_AFLAGS
+=
-m
$(BITS)
-Wl
,-a
$(BITS
)
LDFLAGS
+=
-m
elf
$(BITS)$(LDEMULATION
)
KBUILD_ARFLAGS
+=
--target
=
elf
$(BITS)
-
$(GNUTARGET)
endif
...
...
arch/powerpc/boot/Makefile
View file @
b5240b14
...
...
@@ -23,19 +23,23 @@ all: $(obj)/zImage
compress-$(CONFIG_KERNEL_GZIP)
:=
CONFIG_KERNEL_GZIP
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
\
-fno-strict-aliasing
-Os
-msoft-float
-pipe
\
-fomit-frame-pointer
-fno-builtin
-fPIC
-nostdinc
\
-D
$
(
compress-y
)
BOOTCC
:=
$(CC)
ifdef
CONFIG_PPC64_BOOT_WRAPPER
BOOTCFLAGS
+=
-m64
else
BOOTCFLAGS
+=
-m32
ifdef
CROSS32_COMPILE
BOOTCC
:=
$(CROSS32_COMPILE)
gcc
endif
endif
BOOTCFLAGS
+=
-isystem
$(
shell
$(BOOTCC)
-print-file-name
=
include
)
...
...
@@ -49,6 +53,8 @@ endif
BOOTAFLAGS
:=
-D__ASSEMBLY__
$(BOOTCFLAGS)
-traditional
-nostdinc
BOOTARFLAGS
:=
-cr
$(KBUILD_ARFLAGS)
ifdef
CONFIG_DEBUG_INFO
BOOTCFLAGS
+=
-g
endif
...
...
@@ -202,7 +208,7 @@ quiet_cmd_bootas = BOOTAS $@
cmd_bootas
=
$(BOOTCC)
-Wp
,-MD,
$(depfile)
$(BOOTAFLAGS)
-c
-o
$@
$<
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
$(
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 \
# Build rules
ifeq
($(CONFIG_PPC32),y)
CROSS32CC
:=
$(CC)
ifdef
CROSS32_COMPILE
VDSOCC
:=
$(CROSS32_COMPILE)
gcc
else
VDSOCC
:=
$(CC)
endif
CC32FLAGS
:=
ifdef
CONFIG_PPC64
CC32FLAGS
+=
-m32
endif
targets
:=
$
(
obj-vdso32
)
vdso32.so vdso32.so.dbg
...
...
@@ -45,9 +52,9 @@ $(obj-vdso32): %.o: %.S FORCE
# actual build commands
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
$@
cmd_vdso32as
=
$(
CROSS32CC)
$(a_flags
)
-c
-o
$@
$<
cmd_vdso32as
=
$(
VDSOCC)
$(a_flags)
$(CC32FLAGS
)
-c
-o
$@
$<
# install commands for the unstripped file
quiet_cmd_vdso_install
=
INSTALL
$@
...
...
arch/powerpc/tools/gcc-check-mprofile-kernel.sh
View file @
b5240b14
...
...
@@ -7,17 +7,21 @@ set -o pipefail
# To debug, uncomment the following line
# 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
# profiling code (ie. a call to _mcount()).
echo
"int func() { return 0; }"
|
\
$*
-
S
-x
c
-O2
-p
-mprofile-kernel
-
-o
- 2> /dev/null |
\
grep
-q
"_mcount"
$*
-
m64
-mlittle-endian
-S
-x
c
-O2
-p
-mprofile-kernel
-
-o
-
\
2> /dev/null |
grep
-q
"_mcount"
# Test whether the notrace attribute correctly suppresses calls to _mcount().
echo
-e
"#include <linux/compiler.h>
\n
notrace int func() { return 0; }"
|
\
$*
-
S
-x
c
-O2
-p
-mprofile-kernel
-
-o
- 2> /dev/null |
\
grep
-q
"_mcount"
&&
\
$*
-
m64
-mlittle-endian
-S
-x
c
-O2
-p
-mprofile-kernel
-
-o
-
\
2> /dev/null |
grep
-q
"_mcount"
&&
\
exit
1
echo
"OK"
...
...
scripts/recordmcount.pl
View file @
b5240b14
...
...
@@ -266,13 +266,29 @@ if ($arch eq "x86_64") {
$objcopy
.=
"
-O elf32-sh-linux
";
}
elsif
(
$arch
eq
"
powerpc
")
{
my
$ldemulation
;
$local_regex
=
"
^[0-9a-fA-F]+
\\
s+t
\\
s+(
\\
.?
\\
S+)
";
# See comment in the sparc64 section for why we use '\w'.
$function_regex
=
"
^([0-9a-fA-F]+)
\\
s+<(
\\
.?
\\
w*?)>:
";
$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
)
{
$type
=
"
.quad
";
$type
=
"
.quad
";
$cc
.=
"
-m64
";
$ld
.=
"
-m elf64
"
.
$ldemulation
.
"
";
}
else
{
$cc
.=
"
-m32
";
$ld
.=
"
-m elf32
"
.
$ldemulation
.
"
";
}
}
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