D on the Raspberry Pi
Johannes Pfau
nospam at example.com
Tue Aug 21 03:16:33 PDT 2012
I finally found some time to look install raspbian and have another
look at this issue. Turns out --with-float=hard and --with-fpu=vfp are
actually supported since gcc 4.5, even without patches. But theses
switches require that the gnueabi (or armeabi) is used. Now debian
uses "--target=arm-linux-gnueabihf" and although gnueabihf is just
another name used by debian for gnueabi, gcc fails to recognize this.
Debian distributes a patch with their sources to fix this. It's the
armhf-triplet.diff patch. This is actually the last patch which is
applied, so I guess some earlier patch failed and armhf-triplet.diff
was not applied.
I actually had this issue: The debian package generates the
list of used patches automatically and it seems to produce a wrong list
if the 'lsb-release' package is not installed. But I'm not sure, it
could also be necessary to install the 'debhelper' package and use
debian/build clean before patching.
So this is what fixed it for me:
---------------------------------------------
sudo apt-get install lsb-release debhelper
apt-get source gcc-4.7
cd gcc-4.7-4.7.1
edit debian/rules.patch: comment this line:
debian_patches += gcc-d-lang
so it should become
# debian_patches += gcc-d-lang
debian/rules clean
debian/rules patch
#clone gdc, checkout 4.7 branch
edit gcc/d/setup-gcc.sh: Edit this
-----
elif grep -q '^4\.7\.' gcc/BASE-VER; then
gcc_ver=4.7
-----
so it becomes:
-----
elif grep -q -E '^4\.7([^0-9]|$)' gcc/BASE-VER; then
gcc_ver=4.7
-----
(This should be fixed in the GDC repository, I'll open a pull request
soon)
Then use
./update-gcc.sh --setup /home/pi/gcc-4.7-4.7.1/src
And configure & compile gcc as usual
BTW: I think you shouldn't use --enable-multiarch when
running ../configure. It seems to cause errors in the build process and
as the system gcc didn't use it it's probably not necessary.
More information about the D.gnu
mailing list