DCPUTeam / DCPUToolchain

[ARCHIVED] The code repository for the DCPU-16 Toolchain.
http://dcputoolcha.in/
MIT License
96 stars 14 forks source link

Not Installing Properly from Source on Arch Linux #234

Open zhemao opened 11 years ago

zhemao commented 11 years ago

I am trying to install the toolchain from the git repository. I am using the commit for the stable release (f987844). I try to build and install as follows

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/dcputoolchain ..
make
sudo make install

Everything goes fine until the last step. For some reason, running make install will only install glfw. Does anyone have any idea what is going on?

System Details

hach-que commented 11 years ago

Can you send a full log of the build and install?

cassiebeckley commented 11 years ago

I'll try building on Arch later.

zhemao commented 11 years ago
[  1%] Built target bstring
[ 10%] Built target lua
[ 15%] Built target z
[ 20%] Built target png
[ 26%] Built target glfw
[ 28%] Built target argtable2
[ 30%] Built target simclist
[ 31%] Built target tool-errgen
[ 35%] Built target libdcpu
[ 36%] Built target libdcpu-pp-expr
[ 36%] Built target embedfont
[ 43%] Built target libdcpu-vm
[ 43%] Built target libdcpu-ci-dbgfmt
[ 46%] Built target libdcpu-vm-dbg
[ 53%] Built target libdcpu-pp
[ 56%] Built target libdcpu-ci-objfmt
[ 58%] Built target libdcpu-ci-lang
[ 73%] Built target libdcpu-ci-lang-c
[ 76%] Built target libdcpu-ci-asm
[ 79%] Built target libdcpu-ld-policy
[ 82%] Built target libdcpu-ld
[ 82%] Built target dtpp
[ 82%] Built target dtcc
[ 83%] Built target dtasm
[ 83%] Built target dtld
[ 83%] Built target dtpolicy
[ 84%] Built target dtimg
[ 84%] Built target dtlua
[ 84%] Built target dtemu
[ 86%] Built target dtmm
[ 87%] Built target dtdb
[ 90%] Built target dtdb-gui
[ 91%] Built target stubsys
[ 95%] Built target stdlib-c
[ 97%] Built target ltestdcpu
[ 98%] Built target ltestdcpu-pp
[ 98%] Built target testasm
[100%] Built target testld
[100%] Built target testvm
Install the project...
-- Install configuration: "Debug"
-- Installing: /opt/dcputoolchain/include/GL
-- Up-to-date: /opt/dcputoolchain/include/GL/glfw3.h
-- Up-to-date: /opt/dcputoolchain/share/doc/glfw-3.0.0/COPYING.txt
-- Up-to-date: /opt/dcputoolchain/share/doc/glfw-3.0.0/readme.html
-- Up-to-date: /opt/dcputoolchain/lib/pkgconfig/glfw3.pc
-- Up-to-date: /opt/dcputoolchain/lib/libglfw3.a
cassiebeckley commented 11 years ago

In order for make install to work properly, you have to configure CMake to create a deployable build. To do this, add -DDEPLOYABLE=yes to your cmake command.

You'll also have to add /opt/dcputoolchain/lib to the dynamic linker's search path; I'll give instructions for that in a moment.

cassiebeckley commented 11 years ago

If you followed my instructions above, everything should have installed correctly in /opt/dcputoolchain; however, the toolchain has several shared libraries in /opt/dcputoolchain that the dynamic linker won't be able to find without adding it to the search path.

So, do sudo vi /etc/ld.so.conf.d/dcputoolchain.conf, and type /opt/dcputoolchain/lib, then save and close the file. Then, run sudo ldconfig to tell the linker that you've changed the configuration.

After that, you should be able to do /opt/dcputoolchain/bin/dtasm -h and see the help message for dtasm.

zhemao commented 11 years ago

Okay, I'm trying that. But now I'm getting the following linker error.

/usr/bin/ld: ../third-party/bstring/libbstring.a(bstrlib.c.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC ../third-party/bstring/libbstring.a: could not read symbols: Bad value

zhemao commented 11 years ago

Okay, so I was able to install from the pre-compiled binaries after changing the dynamic link path.

cassiebeckley commented 11 years ago

Oh, you're on x86-64 - I think I remember having problems when trying to compile on a 64 bit system. But it's good that the pre-compiled binaries work.

cassiebeckley commented 11 years ago

@hach-que are x86-64 builds supported?

hach-que commented 11 years ago

They're supported in both deployable and non-deployable modes as that's what I build on.