From: Kees Cook <keescook@chromium.org>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: linux-kbuild@vger.kernel.org,
Sami Tolvanen <samitolvanen@google.com>,
linux-kernel@vger.kernel.org,
Michal Marek <michal.lkml@markovi.net>,
Nick Desaulniers <ndesaulniers@google.com>
Subject: Re: [PATCH 08/13] kbuild: merge vmlinux_link() between ARCH=um and other architectures
Date: Wed, 18 Aug 2021 19:43:29 -0700 [thread overview]
Message-ID: <202108181942.1B116E786@keescook> (raw)
In-Reply-To: <20210819005744.644908-9-masahiroy@kernel.org>
On Thu, Aug 19, 2021 at 09:57:39AM +0900, Masahiro Yamada wrote:
> For ARCH=um, ${CC} is used as the linker driver. Hence, the linker
> options are prefixed with -Wl, .
>
> Merge the similar code.
>
> I replaced the -T option with the long option --script= so that it
> works well with/without ${wl}.
And same for this one. So much better!
Reviewed-by: Kees Cook <keescook@chromium.org>
-Kees
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
> scripts/link-vmlinux.sh | 56 +++++++++++++++++------------------------
> 1 file changed, 23 insertions(+), 33 deletions(-)
>
> diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
> index 7b9c62e4d54a..d74cee5c4326 100755
> --- a/scripts/link-vmlinux.sh
> +++ b/scripts/link-vmlinux.sh
> @@ -149,13 +149,12 @@ objtool_link()
> # ${2}, ${3}, ... - optional extra .o files
> vmlinux_link()
> {
> - local lds="${objtree}/${KBUILD_LDS}"
> local output=${1}
> - local objects
> - local strip_debug
> - local map_option
> local objs
> local libs
> + local ld
> + local ldflags
> + local ldlibs
>
> info LD ${output}
>
> @@ -171,42 +170,33 @@ vmlinux_link()
> libs="${KBUILD_VMLINUX_LIBS}"
> fi
>
> + if [ "${SRCARCH}" = "um" ]; then
> + wl=-Wl,
> + ld="${CC}"
> + ldflags="${CFLAGS_vmlinux}"
> + ldlibs="-lutil -lrt -lpthread"
> + else
> + wl=
> + ld="${LD}"
> + ldflags="${KBUILD_LDFLAGS} ${LDFLAGS_vmlinux}"
> + ldlibs=
> + fi
> +
> + ldflags="${ldflags} ${wl}--script=${objtree}/${KBUILD_LDS}"
> +
> # The kallsyms linking does not need debug symbols included.
> if [ "$output" != "${output#.tmp_vmlinux.kallsyms}" ] ; then
> - strip_debug=-Wl,--strip-debug
> + ldflags="${ldflags} ${wl}--strip-debug"
> fi
>
> if [ -n "${CONFIG_VMLINUX_MAP}" ]; then
> - map_option="-Map=${output}.map"
> + ldflags="${ldflags} ${wl}-Map=${output}.map"
> fi
>
> - if [ "${SRCARCH}" != "um" ]; then
> - objects="--whole-archive ${objs} --no-whole-archive \
> - --start-group ${libs} --end-group \
> - $@"
> -
> - ${LD} ${KBUILD_LDFLAGS} ${LDFLAGS_vmlinux} \
> - ${strip_debug#-Wl,} \
> - -o ${output} \
> - ${map_option} \
> - -T ${lds} ${objects}
> - else
> - objects="-Wl,--whole-archive \
> - ${KBUILD_VMLINUX_OBJS} \
> - -Wl,--no-whole-archive \
> - -Wl,--start-group \
> - ${KBUILD_VMLINUX_LIBS} \
> - -Wl,--end-group \
> - ${@}"
> -
> - ${CC} ${CFLAGS_vmlinux} \
> - ${strip_debug} \
> - -o ${output} \
> - ${map_option:+-Wl,${map_option}} \
> - -Wl,-T,${lds} \
> - ${objects} \
> - -lutil -lrt -lpthread
> - fi
> + ${ld} ${ldflags} -o ${output} \
> + ${wl}--whole-archive ${objs} ${wl}--no-whole-archive \
> + ${wl}--start-group ${libs} ${wl}--end-group \
> + $@ ${ldlibs}
> }
>
> # generate .BTF typeinfo from DWARF debuginfo
> --
> 2.30.2
>
--
Kees Cook
next prev parent reply other threads:[~2021-08-19 2:43 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-19 0:57 [PATCH 00/13] kbuild: refactoring after Clang LTO Masahiro Yamada
2021-08-19 0:57 ` [PATCH 01/13] kbuild: move objtool_args back to scripts/Makefile.build Masahiro Yamada
2021-08-19 2:45 ` Kees Cook
2021-08-19 0:57 ` [PATCH 02/13] gen_compile_commands: extract compiler command from a series of commands Masahiro Yamada
2021-08-19 6:48 ` Kees Cook
2021-08-19 0:57 ` [PATCH 03/13] kbuild: detect objtool changes correctly and remove .SECONDEXPANSION Masahiro Yamada
2021-08-19 2:55 ` Kees Cook
2021-08-19 3:18 ` Masahiro Yamada
2021-08-19 0:57 ` [PATCH 04/13] kbuild: remove unused quiet_cmd_update_lto_symversions Masahiro Yamada
2021-08-19 6:19 ` Kees Cook
2021-08-19 0:57 ` [PATCH 05/13] kbuild: remove stale *.symversions Masahiro Yamada
2021-08-19 6:29 ` Kees Cook
2021-08-19 0:57 ` [PATCH 06/13] kbuild: merge vmlinux_link() between the ordinary link and Clang LTO Masahiro Yamada
2021-08-19 2:42 ` Kees Cook
2021-08-19 0:57 ` [PATCH 07/13] kbuild: do not remove 'linux' link in scripts/link-vmlinux.sh Masahiro Yamada
2021-08-19 6:32 ` Kees Cook
2021-08-19 0:57 ` [PATCH 08/13] kbuild: merge vmlinux_link() between ARCH=um and other architectures Masahiro Yamada
2021-08-19 2:43 ` Kees Cook [this message]
2021-08-19 0:57 ` [PATCH 09/13] kbuild: do not create built-in.a.symversions or lib.a.symversions Masahiro Yamada
2021-08-19 6:41 ` Kees Cook
2021-08-28 11:57 ` Masahiro Yamada
2021-08-19 0:57 ` [PATCH 10/13] kbuild: build modules in the same way with/without Clang LTO Masahiro Yamada
2021-08-19 6:59 ` Kees Cook
2021-08-19 8:11 ` Masahiro Yamada
2021-08-19 0:57 ` [PATCH 11/13] kbuild: always postpone CRC links for module versioning Masahiro Yamada
2021-08-19 6:43 ` Kees Cook
2021-08-19 0:57 ` [PATCH 12/13] kbuild: merge cmd_modversions_c and cmd_modversions_S Masahiro Yamada
2021-08-19 3:06 ` Kees Cook
2021-08-19 0:57 ` [PATCH 13/13] kbuild: merge cmd_ar_builtin and cmd_ar_module Masahiro Yamada
2021-08-19 3:01 ` Kees Cook
2021-08-25 4:57 ` [PATCH 00/13] kbuild: refactoring after Clang LTO Masahiro Yamada
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202108181942.1B116E786@keescook \
--to=keescook@chromium.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=michal.lkml@markovi.net \
--cc=ndesaulniers@google.com \
--cc=samitolvanen@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).