Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
b5240b14
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
b5240b14
编写于
6月 03, 2018
作者:
M
Michael Ellerman
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'topic/kbuild' into next
Merge in some commits we're sharing with the kbuild tree.
上级
481c63ac
1421dc6d
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
64 addition
and
28 deletion
+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
未找到文件。
arch/powerpc/Makefile
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
";
$cc
.=
"
-m64
";
$ld
.=
"
-m elf64
"
.
$ldemulation
.
"
";
}
else
{
$cc
.=
"
-m32
";
$ld
.=
"
-m elf32
"
.
$ldemulation
.
"
";
}
}
elsif
(
$arch
eq
"
arm
")
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录