[PATCH] powerpc/boot: request no dynamic linker for boot wrapper
Gustavo Luiz Duarte
gustavold at linux.vnet.ibm.com
Thu Dec 1 04:47:11 AEDT 2016
On 11/29/2016 01:42 AM, Michael Ellerman wrote:
> Nicholas Piggin <npiggin at gmail.com> writes:
> > On Mon, 28 Nov 2016 22:07:39 +1100
> > Michael Ellerman <mpe at ellerman.id.au> wrote:
> >> Nicholas Piggin <npiggin at gmail.com> writes:
> >>> diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
> >>> index 404b3aa..cd941a8 100755
> >>> --- a/arch/powerpc/boot/wrapper
> >>> +++ b/arch/powerpc/boot/wrapper
> >>> @@ -181,6 +181,13 @@ case "$elfformat" in
> >>> elf32-powerpc) format=elf32ppc ;;
> >>> esac
> >>>
> >>> +# Do not include PT_INTERP segment when linking pie. Non-pie linking
> >>> +# just ignores this option.
> >>> +LD_VERSION=$(${CROSS}ld --version | $srctree/scripts/ld-version.sh)
> >>> +LD_NO_DL_MIN_VERSION=$(echo 2.26 | $srctree/scripts/ld-version.sh)
> >>> +if [ "$LD_VERSION" -ge "$LD_NO_DL_MIN_VERSION" ] ; then
> >>> + nodl="--no-dynamic-linker"
> >>> +fi
> >>
> >> Some distros (RHEL at least?), ship the wrapper as a standalone script.
> >> So I don't think we can call things in $srctree. Or at least I don't
> >> know how that's supposed to work when it's shipped standalone.
> >> We're also basically reinventing ld-option, which is a PITA.
> >
> > Okay I didn't realize that. It's already using mkuboot.sh, but only
> > for uboot targets... I don't know, I don't have any good ideas at the
> > moment.
>
> That looks like a bug, but I guess no one runs Fedora/RHEL on those
> machines? Previously it just called mkimage using $PATH.
>
> The Fedora spec file does:
>
> make DESTDIR=$RPM_BUILD_ROOT bootwrapper_install WRAPPER_OBJDIR=%{_libdir}/kernel-wrapper WRAPPER_DTSDIR=%{_libdir}/kernel-wrapper/dts
>
> bootwrapper_install installs a bunch of files, and also calls:
>
> quiet_cmd_install_wrapper = INSTALL $(patsubst $(DESTDIR)$(WRAPPER_BINDIR)/%,%,$@)
> cmd_install_wrapper = $(INSTALL) -m0755 $(patsubst $(DESTDIR)$(WRAPPER_BINDIR)/%,$(srctree)/$(obj)/%,$@) $@ ;\
> sed -i $@ -e 's%^object=.*%object=$(WRAPPER_OBJDIR)%' \
> -e 's%^objbin=.*%objbin=$(WRAPPER_BINDIR)%' \
>
> ie. it seds the script. So we could probably just install ld-version.sh
> into $(DESTDIR)$(WRAPPER_OBJDIR) and then sed $srctree maybe?
>
> But it's old code and I'm not that across how it gets used in the wild.
> CC'ing Gustavo who is our Fedora/RHEL/Power guy.
I don't know either how (or if) boot wrapper is used in Fedora as stand-alone. I think Michael's suggestion to use sed to replace $srctree should be fine.
[]'s
Gustavo
>
> cheers
>
More information about the Linuxppc-dev
mailing list