shellphish / shellphish-qemu

A pip wrapper around our ridiculous amount of qemu forks.
BSD 2-Clause "Simplified" License
47 stars 18 forks source link

Unable to build #2

Closed anon8675309 closed 7 years ago

anon8675309 commented 7 years ago
$ ./rebuild.sh
      ...
      AR    libqemuutil.a
    make[1]: *** No rule to make target 'all'.  Stop.
    Makefile:173: recipe for target 'subdir-i386-linux-user' failed
    make: *** [subdir-i386-linux-user] Error 2
    Configuring CGC tracer qemu...
    Building CGC tracer qemu...
    error: Unable to build shellphish-qemu-cgc
    ----------------------------------------
Command "/home/[redacted]/.virtualenvs/driller/bin/python2 -c "import setuptools, tokenize;__file__='/home/[redacted]/projects/[redacted]/research/VR/driller-scripts/shellphish-qemu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps" failed with error code 1 in /home/[redacted]/projects/[redacted]/research/VR/driller-scripts/shellphish-qemu/

When running the failed command from the command line:

$ /home/[redacted]/.virtualenvs/driller/bin/python2 -c "import setuptools, tokenize;__file__='/home/[redacted]/projects/[redacted]/research/VR/driller-scripts/shellphish-qemu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps
running develop
Cloning CGC QEMU
Already up-to-date.
Cloning Linux QEMU
Building Tracer QEMU
Configuring CGC tracer qemu...
rm -f *.timestamp
make -C tests/tcg clean
make[1]: Entering directory '/home/[redacted]/projects/[redacted]/research/VR/driller-scripts/shellphish-qemu/shellphish-qemu-cgc-base/tests/tcg'
rm -f *.timestamp
rm -f *~ *.o test-i386.out test-i386.ref \
           test-x86_64.log test-x86_64.ref qruncom test_path hello-i386 linux-test testthread sha1-i386 test-i386 test-i386-fprem test-mmap  run-test-x86_64
make[1]: Leaving directory '/home/[redacted]/projects/[redacted]/research/VR/driller-scripts/shellphish-qemu/shellphish-qemu-cgc-base/tests/tcg'
rm -rf tests/check-qdict tests/check-qfloat tests/check-qint tests/check-qstring tests/check-qlist tests/check-qjson tests/test-qmp-output-visitor tests/test-qmp-input-visitor tests/test-qmp-input-strict tests/test-qmp-commands tests/test-string-input-visitor tests/test-string-output-visitor tests/test-qmp-event tests/test-opts-visitor tests/test-coroutine tests/test-visitor-serialization tests/test-iov tests/test-aio tests/test-rfifolock tests/test-throttle tests/test-thread-pool tests/test-hbitmap tests/test-x86-cpuid tests/test-cutils tests/test-mul64 tests/test-int128 tests/rcutorture tests/test-rcu-list tests/test-bitops tests/check-qom-interface tests/test-qemu-opts tests/test-write-threshold tests/*.o tests/qemu-iotests/socket_scm_helper
rm -rf tests/ac97-test tests/ahci-test tests/bios-tables-test tests/boot-order-test tests/display-vga-test tests/drive_del-test tests/e1000-test tests/eepro100-test tests/endianness-test tests/es1370-test tests/fdc-test tests/fw_cfg-test tests/hd-geo-test tests/i440fx-test tests/i82801b11-test tests/ide-test tests/intel-hda-test tests/ioh3420-test tests/ipoctal232-test tests/ne2000-test tests/nvme-test tests/pc-cpu-test tests/pcnet-test tests/pvpanic-test tests/qom-test tests/rtc-test tests/rtl8139-test tests/spapr-phb-test tests/tmp105-test tests/tpci200-test tests/usb-hcd-ehci-test tests/usb-hcd-ohci-test tests/usb-hcd-uhci-test tests/usb-hcd-xhci-test tests/vhost-user-test tests/virtio-balloon-test tests/virtio-blk-test tests/virtio-console-test tests/virtio-net-test tests/virtio-rng-test tests/virtio-scsi-test tests/virtio-serial-test tests/vmxnet3-test tests/wdt_ib700-test
rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
rm -f qemu-options.def
find . \( -name '*.l[oa]' -o -name '*.so' -o -name '*.dll' -o -name '*.mo' -o -name '*.[oda]' \) -type f -exec rm {} +
rm -f  qemu-bridge-helper qemu-ga TAGS cscope.* *.pod *~ */*~
rm -f fsdev/*.pod
rm -rf .libs */.libs
rm -f qemu-img-cmds.h
rm -f trace/generated-tracers-dtrace.dtrace*
rm -f trace/generated-tracers-dtrace.h*
rm -f config-host.h config-host.h-timestamp qemu-options.def qemu-options.def-timestamp qmp-commands.h qmp-commands.h-timestamp qapi-types.h qapi-types.h-timestamp qapi-visit.h qapi-visit.h-timestamp qapi-event.h qapi-event.h-timestamp trace/generated-events.h trace/generated-events.h-timestamp trace/generated-tracers.h trace/generated-tracers.h-timestamp trace/generated-tcg-tracers.h trace/generated-tcg-tracers.h-timestamp trace/generated-helpers-wrappers.h trace/generated-helpers-wrappers.h-timestamp trace/generated-helpers.h trace/generated-helpers.h-timestamp tests/test-qapi-types.h tests/test-qapi-types.h-timestamp tests/test-qapi-visit.h tests/test-qapi-visit.h-timestamp tests/test-qmp-commands.h tests/test-qmp-commands.h-timestamp tests/test-qapi-event.h tests/test-qapi-event.h-timestamp
rm -f qmp-marshal.c qmp-marshal.c-timestamp qapi-types.c qapi-types.c-timestamp qapi-visit.c qapi-visit.c-timestamp qapi-event.c qapi-event.c-timestamp trace/generated-events.c trace/generated-events.c-timestamp trace/generated-tracers.c trace/generated-tracers.c-timestamp trace/generated-helpers.c trace/generated-helpers.c-timestamp
rm -rf qapi-generated
rm -rf qga/qapi-generated
for d in i386-linux-user ; do \
if test -d $d; then make -C $d clean || exit 1; fi; \
rm -f $d/qemu-options.def; \
        done
make[1]: Entering directory '/home/[redacted]/projects/[redacted]/research/VR/driller-scripts/shellphish-qemu/shellphish-qemu-cgc-base/i386-linux-user'
make[1]: *** No rule to make target 'clean'.  Stop.
make[1]: Leaving directory '/home/[redacted]/projects/[redacted]/research/VR/driller-scripts/shellphish-qemu/shellphish-qemu-cgc-base/i386-linux-user'
Makefile:292: recipe for target 'clean' failed
make: *** [clean] Error 1
error: Unable to clean shellphish-qemu-cgc-tracer

There is a "clean" target in shellphish-qemu-cgc-base/Makefile, so I'm not sure why it's throwing this error. Suggestions on how to troubleshoot further?

rhelmot commented 7 years ago

The rebuild script is only really meant to be useful during development and packaging. For you, just using the standard setup.py script should be fine - just python setup.py install will build and install.

I'm guessing you've already tried this though. What operating system/distro/architecture are you running on?

anon8675309 commented 7 years ago

Chalk this one up to user error (sort of). The issue was that the filesystem I was using didn't support symlinks (Virtualbox shared folder), and something was trying to make a symlink to shellphish-qemu-cgc-base/Makefile.target in shellphish-qemu-cgc-base/i386-linux-user. Unfortunately whatever did this did not check to see that it succeeded (which, to be fair, it is a pretty odd edge case), which masked the error. I moved it to ~/ and it built just fine. Sorry to bother you. I'm going to go murder some binaries now. Cheers!