Can't assemble a .S file using arm-none-eabi-gcc - gcc

I am following a tutorial on how to make an operating system for the raspberry pi. I want to follow this tutorial on a Raspberry Pi running Raspbian.
When I try to assemble some assembly using arm-none-eabi-gcc (arm-none-eabi-gcc -mcpu=cortex-a7 -fpic -ffreestanding -c boot/boot.S -o boot/boot.o), I get this:
/usr/lib/gcc/arm-none-eabi/8.3.1/cc1: error while loading shared libraries: /lib/aarch64-linux-gnu/libisl.so.23: unexpected PLT reloc type 0x00
make: *** [Makefile:2: all] Error 1
I don't know why this happens, because I installed the arm-none-eabi-gcc package...
How can I fix this?

Related

Compiling libxsmm on Macbook air m1

I tried to compile the libxsmm library on my Macbook air m1 (arm64) using the following commands:
git clone --branch 1.17 https://github.com/hfp/libxsmm
cd libxsmm
make generator
cp bin/libxsmm_gemm_generator $HOME/bin
cd ..
However, I got an error that an Intel Architecture or compatible CPU required:
(base) yonatan#Yonatans-MacBook-Air libxsmm % make generator
cc -DNDEBUG -D__STATIC=1 -DLIBXSMM_BUILD=1 -Iinclude -I./src -fPIC -Wno-pass-failed -Wall -O2 -pthread -c ./src/libxsmm_generator_gemm_driver.c -o obj/intel64/libxsmm_generator_gemm_driver.o
In file included from ./src/libxsmm_generator_gemm_driver.c:11:
In file included from include/libxsmm.h:44:
In file included from include/libxsmm_dnn_convolution.h:14:
In file included from include/libxsmm_dnn.h:14:
In file included from include/libxsmm_typedefs.h:14:
include/libxsmm_macros.h:61:5: error: Intel Architecture or compatible CPU required!
# error Intel Architecture or compatible CPU required!
^
1 error generated.
make: [obj/intel64/libxsmm_generator_gemm_driver.o] Error 1 (ignored)
--------------------------------------------------------------
In case of assembler error, perhaps GNU Binutils are outdated.
See https://github.com/hfp/libxsmm#outdated-binutils
--------------------------------------------------------------
make: *** [obj/intel64/libxsmm_generator_gemm_driver.o] Error 1
(base) yonatan#Yonatans-MacBook-Air libxsmm %
Is there any way to compile or install the libxsmm library on my Mac? I need this library to set up the SeiSol platform (see: documentation https://seissol.readthedocs.io/en/latest/compilation.html) for my studies.
Let me know if any further details are needed. Thanks!

undefined reference to `WinMain` while compiling my own kernel

I've started writing my very own kernel and am developing on Windows 10.
I am using the following tools:
gcc 8.1.0 elf x86_64 for compiling my C code, and for linking.
I am using this Windows package.
nasm 2.14.02 for compiling my assembly code.
I am using the following command to build my freestanding kernel code:
gcc -c -m64 common/src/kernel.c -o common/build/kernel.o -std=gnu99 -ffreestanding -O2 -Wall -Wextra`
I am using the following command for compiling the root assembly code:
nasm -f elf64 targets/x86_64/src/main.asm -o targets/x86_64/build/main.o
Finally I link the object files together:
gcc -o dist/x86_64/main.bin -ffreestanding -O2 targets/x86_64/build/main.o common/build/kernel.o -lgcc
I haven't a clue why, but the following error is stopping the linking process from working:
... undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
This doesn't make sense to me because my compilation and linking is in freestanding mode and I am not attempting to use any windows APIs.
How do I fix this?
If it matters, here is my very simple code:
main.asm:
EXTERN kernel_main
call kernel_main
jmp $
; padding and magic number
times 510-($-$$) db 0
dw 0xaa55
kernel.c:
void kernel_main()
{
// empty
}
Edit: It looks like I might need the x86_64-elf-gcc compiler
Edit 2: I tried the x86_64-w64-mingw32-gcc compiler, same error occurs
I was missing the -nostdlib flag on the linker. This seems to have solved the problem.

Build wxWidgets 2.8.12 GCC 4.6.2

I am getting this error when building wxWidgets in Cygwin:
../src/generic/dirctrlg.cpp:67:24: fatal error: direct.h: No such file or directory
compilation terminated.
make: *** [corelib_dirctrlg.o] Error 1
T_BITS=64 -D_LARGE_FILES -D__WXDEBUG__ -I/cygdrive/c/wxWidgets-2.8.12/build-debug/lib/wx/include/msw-ansi-debug-static-2.8 -I../include -Wall -Wundef -Wno-ctor-dtor-privacy -ggdb -O0 ../src/generic/dirctrlg.cpp
Makefile:28340: recipe for target `corelib_dirctrlg.o' failed
I followed the instructions included in wxWidgets for Windows using configure in install.txt(Compiling wxWidgets).
Which compiler do you use? See http://wxwidgets.blogspot.com/2011/06/choosing-gcc-for-building-wxwidgets.html for some of the choices you have. FWIW direct.h should be present in MinGW compiler headers.

Chef-solo install - gecode compile error

Im trying to install chef-solo on CentOS 6.3 x64 and when I run:
sudo chef-solo -c /etc/chef/solo.rb -j ~/chef.json -r http://s3.amazonaws.com/chef-solo/bootstrap-latest.tar.gz
I'm getting this output:
g++ -I. -ffast-math -fno-strict-aliasing -O3 -fvisibility=hidden -ggdb -pipe -Wall -Wextra -fPIC -pthread -DNDEBUG \
-c -o gecode/int/extensional.o gecode/int/extensional.cpp
make[1]: Leaving directory `/tmp/chef-solo/gecode-3.5.0'
STDERR: {standard input}: Assembler messages:
{standard input}:13822: Warning: end of file not at end of a line; newline inserted
{standard input}:14946: Error: unknown pseudo-op: `.'
{standard input}:14946: Error: open CFI at the end of file; missing .cfi_endproc directive
g++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[1]: *** [gecode/int/extensional.o] Error 1
make: *** [compilelib] Error 2
---- End output of "bash" "/tmp/chef-script20120904-19809-1ofhwoq" ----
Ran "bash" "/tmp/chef-script20120904-19809-1ofhwoq" returned 2
I can install gecode from the RBEL6 repo without any problems but the cookbook attempts to install from source. I found this pull request on github which attempts to install from the RBEL repo but I got an error saying that the repository metadata couldn't be found. Anyone know what to do?
Since I have been searching for an answer to this, my findings were rather ... unsurprising.
I simply ran out of memory. I had to compile my files on another system with the same OS (copied over /tmp/chef-solo/gecode-3.5.0 to the box and just ran make) and synced the resulting folder back to run make install
Once the library is found the compile step is skipped and you should be good to continue.

Install libbluetooth-dev on Mac

I've been looking forward to using the wiiuse library on my Mac.
When trying to install the library, when compiling with make I was told this :
>make wiiuse
gcc -Wall -pipe -fPIC -funroll-loops -O2 -I. -c classic.c -o release-x86_64-apple-darwin15.4.0/classic.o
In file included from classic.c:43:
./wiiuse_internal.h:49:11: fatal error: 'bluetooth/bluetooth.h' file not found
#include <bluetooth/bluetooth.h>
^
1 error generated.
make[1]: *** [release-x86_64-apple-darwin15.4.0/classic.o] Error 1
make: *** [wiiuse] Error 2
My friend on Ubuntu solved it with sudo apt-get install libbluetooth-dev but I can't find anything on Mac.
If you have any idea about how to install wiiuse or libbluetooth-dev on mac, thanks in advance for your help
I've just been looking for the same thing, came across this site saying it's not available on OSX, not sure how official it is though: http://rosindex.github.io/d/libbluetooth-dev/

Resources