rumpkernel / rumprun

The Rumprun unikernel and toolchain for various platforms
Other
1.14k stars 128 forks source link

Rumprun fails to build stating -r and -pie may not be used together even after passing -no-pie option #106

Open niks3089 opened 7 years ago

niks3089 commented 7 years ago

I am trying to build rumprun on ubuntu. The build is failing even with the suggested work-around given in #85 on both xen and hw platform. I tried

 CXX=false ./build-rr.sh xen -- -F ACLFLAGS=-no-pie
 CXX=false ./build-rr.sh hw -- -F ACLFLAGS=-no-pie

but still see the following error

/usr/bin/ld: -r and -pie may not be used together
collect2: error: ld returned 1 exit status
Makefile:90: recipe for target '/home/osboxes/rump/rumprun/platform/xen/obj/xen/minios.o' failed
make[1]: *** [/home/osboxes/rump/rumprun/platform/xen/obj/xen/minios.o] Error 1

Here are the details

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.10
Release:    16.10
Codename:   yakkety
gcc --version
gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005

Some more details about the build output

osboxes:/home/osboxes/rump/rumprun]$ CXX=false ./build-rr.sh hw -- -F ACLFLAGS=-no-pie
>>
>> NOTICE: Not a buildrump.sh-based git repo in /home/osboxes/rump/rumprun/src-netbsd
>> Cannot verify repository version.  Proceeding ...
>>
Tool  CC                : /usr/bin/cc
Tool  AR                : /usr/bin/ar
Tool  NM                : /usr/bin/nm
Tool  OBJCOPY           : /usr/bin/objcopy
Tool  AS                : /usr/bin/as
Tool  LD                : /usr/bin/ld
Tool  OBJDUMP           : /usr/bin/objdump
Tool  RANLIB            : /usr/bin/ranlib
Tool  READELF           : /usr/bin/readelf
Tool  SIZE              : /usr/bin/size
Tool  STRINGS           : /usr/bin/strings
Tool  STRIP             : /usr/bin/strip
Cmd   SRCDIR            : /home/osboxes/rump/rumprun/src-netbsd
Cmd   DESTDIR           : /home/osboxes/rump/rumprun/obj-amd64-hw/dest.stage
Cmd   OBJDIR            : /home/osboxes/rump/rumprun/obj-amd64-hw/buildrump.sh
Cmd   BRTOOLDIR         : /home/osboxes/rump/rumprun/obj-amd64-hw/rumptools
Cmd   DBG               : -O2 -g
Cmd   make -j[num]      : -j 4
Cmd   RUMPKERN_ONLY     : yes
Cmd   CPPFLAGS          : -D__NetBSD__
Probe CPPFLAGS          : -Ulinux -U__linux -U__linux__ -U__gnu_linux__
Probe RUMP_VIRTIF       : no
Probe LDFLAGS           : -no-pie
Probe CFLAGS            : -mno-red-zone -no-pie -U_FORTIFY_SOURCE
Probe AFLAGS            : -no-pie
Probe RUMP_LDSCRIPT     : no
Probe _BUILDRUMP_CXX    : no
===> Warning: PATH contains non-absolute components
===> build.sh command:    ./build.sh -m amd64 -u -D /home/osboxes/rump/rumprun/obj-amd64-hw/rumptools/dest -w /home/osboxes/rump/rumprun/obj-amd64-hw/rumptools/rumpmake -T /home/osboxes/rump/rumprun/obj-amd64-hw/rumptools -j 4 -N2 -E -Z S -V EXTERNAL_TOOLCHAIN=/home/osboxes/rump/rumprun/obj-amd64-hw/rumptools -V TOOLCHAIN_MISSING=yes -V TOOLS_BUILDRUMP=yes -V MKGROFF=no -V MKLINT=no -V MKZFS=no -V MKDYNAMICROOT=no -V MKDTRACE=no -V MKCTF=no -V MKPIE=no -V TOPRUMP=/home/osboxes/rump/rumprun/src-netbsd/sys/rump -V MAKECONF=/home/osboxes/rump/rumprun/obj-amd64-hw/rumptools/mk.conf -V MAKEOBJDIR=${.CURDIR:C,^(/home/osboxes/rump/rumprun/src-netbsd|/home/osboxes/rump/rumprun/buildrump.sh),/home/osboxes/rump/rumprun/obj-amd64-hw/buildrump.sh,} -V BUILDRUMP_STAGE=/home/osboxes/rump/rumprun/obj-amd64-hw/rumptools/dest -V MKPIC=no -V RUMP_CURLWP=__thread -V RUMP_KERNEL_IS_LIBC=1 -V BUILDRUMP_SYSROOT=yes makewrapper
===> build.sh started:    Wed Sep 13 14:14:10 BST 2017
===> NetBSD version:      7.99.34
===> MACHINE:             amd64
===> MACHINE_ARCH:        x86_64
===> Build platform:      Linux 4.8.0-59-generic x86_64
===> HOST_SH:             /bin/sh
===> MAKECONF file:       /home/osboxes/rump/rumprun/obj-amd64-hw/rumptools/mk.conf

Am i missing something? Is there any work-around?