SlackwareARM on RaspberryPI and soft/hard float
AFAIK SlackwareARM packages are compiled (for wide compatibility reasons) as soft-float on the ARM platform.
Not all SoC have hard-float and SlackwareARM aims at supporting as many as possible. Which is very good. My question is: on the RaspberryPI whose CPU include hardware floating point support, what would be necessary to be recompiled in the Slackware distro so that end user applications (that would benefit from using hard-float and be compiled with hard-float) would need to work properly ? Off the top of my head I'm thinking: glibc, some system utils, some libraries that would be used by such applications.. AFAIK the kernel (using FatDog's guide) is the binary official one from The Raspberry Foundation, which is hard-float compiled. Examples: image processing (imagemagic, jpeg, etc), video processing (ffmpeg, etc), mysql (if using FLOAT columns), ... (the list is open) I assume things like "ls" won't really need the upgrade. |
Quote:
So yes, if the CPU contains hardware floating point support, your kernel will be hard float. However, the kernel <-> userland syscall ABI is divorced from the userland ABI which is why you can run the soft float userland on a hard float kernel. Quote:
http://mindplusplus.wordpress.com/20...-raspberry-pi/ |
i think i have heard of - the kernel never ever use any floating point ...
|
drmozes, that someone was me. :) I rebuild Glibc using "-mfloat-abi=softfp" every time Slackware ARM gets a new version. If nothing else, it relieves some of the memory pressure on my first-edition RPi.
|
Quote:
Code:
mkdir -p slackware{64,arm}-current/source/d/kernel-headers/ |
Quote:
|
Build fails:
Code:
Creating Slackware package: /root/tgzstash/l/glibc-2.19-arm-3.txz |
Quote:
mkdir -p /root/tgzstash/l |
Quote:
It need more tests but i will do later. |
I will look into this. My instructions may be incomplete regarding the tgzstash/ directory.
|
I had an ABI version error when tried to startx:
Code:
francis@rpi:~$ startx |
Thanks to frushiyama for the package build bug report, and drmozes for recognizing the culprit. Yes, the a/ and l/ directories must be present under tgzstash/. I have fixed the build instructions.
frushiyama, I will look into the X problem. |
Problem confirmed. To make matters worse, reverting to glibc from -current didn't fix. However, I suspect an issue with the X server packages, as I've seen this before. Again, I'll look into it.
(And apologies for the long delay. I don't have Internet access at home.) |
Quote:
If the problem continues, look in the Xorg log to see which modules are being loaded and reply here. |
Quote:
Code:
echo "CFLAGS = -O2 -mfloat-abi=softfp -march=native -mtune=native" > /root/configparms Code:
echo "CFLAGS = -O2 -mfloat-abi=softfp -march=native -mtune=native" > /root/configparms |
Thanks for the heads-up, frushiyama. WordPress's syntax highlighter can sometimes be a nuisance.
|
glibc rebuilt with new updates, and X also updated.
the X server now start and i can see the screen but the keyborad and the mouse are dead the nunlk light were on when i was without X, and when the X started the led goes off. here is my complete /var/log/Xorg.0.log : http://pastebin.com/CSn4wuCs |
Well, this thread has strayed pretty far from the original topic, so I'll throw my two-cents in.
It appears to me that the core X server and some of its modules have gotten out-of-sync. For example, I use the "dummy" video driver. I use an NTSC television, not HDMI, and a GUI is nearly impossible to read on it. By skipping the X framebuffer, I can also specify "gpu_mem=8" in /boot/config.txt. (Yes, the stated minimum is 16, but it Works For Me.) If I want to use a full GUI on the RPi, I can use remote XDMCP from my desktop. When the RPi XDM stopped launching the X server, I saw the same error in /var/log/xdm.err that frushiyama had, with the first (EE) line appearing right after trying to load GLX. However, examining the more complete /var/log/Xorg.0.log showed that the (EE) line occurred right after trying to activate the video driver, "dummy" in my case. I think that's where the ABI difference was occurring. And, since the "dummy" driver didn't get rebuilt, I still get the ABI mismatch message, and no X session started on the RPi. (But XDMCP works OK. Go figure.) How would I go about re-building just the "dummy" module? There's no way I can re-build all of X on my RPi in this lifetime. :) |
Quote:
You should be able to build an individual package in almost the same way as for x86, apart from you need to use 'arm/build' instead of ./x11.SlackBuild Code:
./arm/build lib libX11 |
The general driver re-build got my X server (with the "dummy" video driver) back up and running. Thanks, drmozes.
|
Quote:
|
All times are GMT -5. The time now is 10:44 AM. |