Bug 11321 - Latest master fails to build readline with RELRO FULL
Summary: Latest master fails to build readline with RELRO FULL
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: All Linux
: P5 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-11 07:23 UTC by Timothy Pearson
Modified: 2018-11-02 10:10 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Timothy Pearson 2018-09-11 07:23:49 UTC
When RELRO is set to Full, readline fails to build.  RELRO Partial has no issues.

/home/buildroot/project/buildroot# make
>>> readline 7.0 Building
PATH="/home/buildroot/project/buildroot/output/host/bin:/home/buildroot/project/buildroot/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"  /usr/bin/make -j16  -C /home/buildroot/project/buildroot/output/build/readline-7.0/
make[1]: Entering directory '/home/buildroot/project/buildroot/output/build/readline-7.0'
test -d shlib || mkdir shlib
( cd shlib ; /usr/bin/make -w -j --jobserver-fds=3,4 all )
make[2]: Entering directory '/home/buildroot/project/buildroot/output/build/readline-7.0/shlib'
rm -f libreadline.so.7.0
rm -f libhistory.so.7.0
/home/buildroot/project/buildroot/output/host/bin/powerpc64le-buildroot-linux-gnu-gcc -shared -Wl,-soname,libreadline.so.7.0 -pie -Wl,-z,now -Wl,-z,relro -Wl,-rpath,/usr/lib -Wl,-soname,`basename libreadline.so.7.0 .0` -o libreadline.so.7.0 readline.so vi_mode.so funmap.so keymaps.so parens.so search.so rltty.so complete.so bind.so isearch.so display.so signals.so util.so kill.so undo.so macro.so input.so callback.so terminal.so text.so nls.so misc.so history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so tilde.so colors.so parse-colors.so xmalloc.so xfree.so compat.so -lncurses
/home/buildroot/project/buildroot/output/host/bin/powerpc64le-buildroot-linux-gnu-gcc -shared -Wl,-soname,libhistory.so.7.0 -pie -Wl,-z,now -Wl,-z,relro -Wl,-rpath,/usr/lib -Wl,-soname,`basename libhistory.so.7.0 .0` -o libhistory.so.7.0 history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so xmalloc.so xfree.so -lncurses
/home/buildroot/project/buildroot/output/host/lib/gcc/powerpc64le-buildroot-linux-gnu/8.2.0/../../../../powerpc64le-buildroot-linux-gnu/bin/ld: /home/buildroot/project/buildroot/output/host/powerpc64le-buildroot-linux-gnu/sysroot/usr/lib/../lib64/Scrt1.o:(.data.rel.ro.local+0x8): undefined reference to `main'
collect2: error: ld returned 1 exit status
Makefile:180: recipe for target 'libhistory.so.7.0' failed
make[2]: *** [libhistory.so.7.0] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/buildroot/project/buildroot/output/host/lib/gcc/powerpc64le-buildroot-linux-gnu/8.2.0/../../../../powerpc64le-buildroot-linux-gnu/bin/ld: /home/buildroot/project/buildroot/output/host/powerpc64le-buildroot-linux-gnu/sysroot/usr/lib/../lib64/Scrt1.o:(.data.rel.ro.local+0x8): undefined reference to `main'
collect2: error: ld returned 1 exit status
Makefile:176: recipe for target 'libreadline.so.7.0' failed
make[2]: *** [libreadline.so.7.0] Error 1
make[2]: Leaving directory '/home/buildroot/project/buildroot/output/build/readline-7.0/shlib'
Makefile:209: recipe for target 'shared' failed
make[1]: *** [shared] Error 2
make[1]: Leaving directory '/home/buildroot/project/buildroot/output/build/readline-7.0'
package/pkg-generic.mk:229: recipe for target '/home/buildroot/project/buildroot/output/build/readline-7.0/.stamp_built' failed
make: *** [/home/buildroot/project/buildroot/output/build/readline-7.0/.stamp_built] Error 2
Comment 1 Matt Weber 2018-09-11 13:02:25 UTC
Would you mind providing an example defconfig that reproduces this?  I'm working on an update to the hardening approach, as there are link time issues with the way the current flags are included.  This maybe related to your issue and I'll give it a test.
Comment 2 Matt Weber 2018-09-14 17:36:13 UTC
Test build used master 14f5cb7 and http://patchwork.ozlabs.org/project/buildroot/list/?series=65762 with defconfig noted in https://bugs.busybox.net/show_bug.cgi?id=11206.  This config included the readline package.
Comment 3 Thomas Petazzoni 2018-11-02 10:10:24 UTC
This is fixed by the patches from Matt that add hardening awareness in the toolchain wrapper, and which have been merged in master as of:

394bdd11fc1f741c88c89f0e71571d87a29ab627 BR2_FORTIFY*: toolchain wrapper limitation note
f10822d151085bcbfecd0ecf2542ac5f5623fd9d toolchain/toolchain-wrapper: add BR2_SSP_* support
7484c1c3b8065d6f2f5a67607e9917ecfea022eb toolchain/toolchain-wrapper: add BR2_RELRO_