[opensuse-arm] armv5 progress
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I made progress on the arm5 side of things (to get openSUSE to run on my two openRDs) disassembling some of the non-working programs had shown earlier that there were floating point instructions while Debian's gcc produced function calls in those places. I tried to compile the kernel with floating-point emulation without effect. Reading http://wiki.debian.org/ArmEabiPort I found mention of the __SOFTFP__ macro and that paradoxically it is not set by -mfloat-abi=softfp checking with :| gcc -dM -E -x c -|grep SOFT I found that this is set on Debian, but not on openSUSE. our gcc46.spec had in the armv5 section - --with-float=softfp which I changed to =soft for a local build (OBS does not let me branch a broken package). And it made gcc work finally for armv5 - yay! so please apply this patch: - --- gcc46.spec (revision b6148fab8499be9d98ff39bdabb170ec) +++ gcc46.spec (working copy) @@ -1697,7 +1719,7 @@ %endif %if "%{TARGET_ARCH}" == "armv5tel" --with-arch=armv5te \ - - --with-float=softfp \ + --with-float=soft \ --with-mode=arm \ --with-abi=aapcs-linux \ --disable-sjlj-exceptions \ When I tried to build locally on ARM, I also hit another strange bug, that I only saw on Factory ARM: # (cd /tmp/ ; sudo id ; echo $?) 143 - -- _=======.=======_ _---|____________\/ (____/ /\ _/ \_ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk9ld/wACgkQSTYLOx37oWR+VACgl9PFYgyWYELnN67f5C8OJEZT pJMAoPvf+YIvA6DOgRLmRAU6cYziVR17 =dE2T -----END PGP SIGNATURE----- -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hi, Le 18/03/2012 06:51, Bernhard M. Wiedemann a écrit :
Hi,
I made progress on the arm5 side of things (to get openSUSE to run on my two openRDs)
I suppose it is this board: http://open-rd.org/
disassembling some of the non-working programs had shown earlier that there were floating point instructions while Debian's gcc produced function calls in those places. I tried to compile the kernel with floating-point emulation without effect.
Reading http://wiki.debian.org/ArmEabiPort I found mention of the __SOFTFP__ macro and that paradoxically it is not set by -mfloat-abi=softfp
checking with :| gcc -dM -E -x c -|grep SOFT I found that this is set on Debian, but not on openSUSE.
our gcc46.spec had in the armv5 section --with-float=softfp
which I changed to =soft for a local build (OBS does not let me branch a broken package). And it made gcc work finally for armv5 - yay!
so please apply this patch:
--- gcc46.spec (revision b6148fab8499be9d98ff39bdabb170ec) +++ gcc46.spec (working copy) @@ -1697,7 +1719,7 @@ %endif %if "%{TARGET_ARCH}" == "armv5tel" --with-arch=armv5te \ - --with-float=softfp \ + --with-float=soft \ --with-mode=arm \ --with-abi=aapcs-linux \ --disable-sjlj-exceptions \
Accroding to [0], "Specifying `soft' causes GCC to generate output containing library calls for floating-point operations. `softfp' allows the generation of code using hardware floating-point instructions, but still uses the soft-float calling conventions. `hard' allows generation of floating-point instructions and uses FPU-specific calling conventions." So, it seems your SoC does not have any hardware to compute floating point operations.
When I tried to build locally on ARM, I also hit another strange bug, that I only saw on Factory ARM: # (cd /tmp/ ; sudo id ; echo $?) 143
I have the same thing on my beagleboard xM (armv7l), but sudo id return nothing! It may come from a missing config file? If you try "sudo ls", it does not works. Isn't it? Guillaume [0]: http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Am Sonntag, 18. März 2012, 06:51:56 schrieb Bernhard M. Wiedemann: ..
our gcc46.spec had in the armv5 section - --with-float=softfp
which I changed to =soft for a local build (OBS does not let me branch a broken package). And it made gcc work finally for armv5 - yay! ...
We can do so, that would mean that we don't use hard floating point instructions inside the soft fp ABI anymore. It sounds sane to me, however, I do not know if we have limited us here on puropose. Some other compilation errors may come back, because the soft FP support may not be good enough. Question is how many armv5 with and without fpu unit are out there. Does it make sense to limit us to the ones with hard fpu ? Or would an armv5 port make no sense at all then ? bye adrian -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
On 19.03.2012, at 10:14, Adrian Schröter wrote:
Am Sonntag, 18. März 2012, 06:51:56 schrieb Bernhard M. Wiedemann: ..
our gcc46.spec had in the armv5 section - --with-float=softfp
which I changed to =soft for a local build (OBS does not let me branch a broken package). And it made gcc work finally for armv5 - yay! ...
We can do so, that would mean that we don't use hard floating point instructions inside the soft fp ABI anymore.
It sounds sane to me, however, I do not know if we have limited us here on puropose.
Some other compilation errors may come back, because the soft FP support may not be good enough.
Question is how many armv5 with and without fpu unit are out there.
Does it make sense to limit us to the ones with hard fpu ? Or would an armv5 port make no sense at all then ?
IIUC most armv5 CPUs come without FPU, so --with-float=soft is the correct solution. I don't know why we have softfp in there - probably just a screwup :). Either way, the armv5 port is supposed to be the "most compatible common ground" that can run everything the accelerated armv7hf port can not run. So it definitely doesn't make sense to use the FPU. Alex -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 03/19/2012 11:10 AM, Alexander Graf wrote:
On 19.03.2012, at 10:14, Adrian Schröter wrote:
Am Sonntag, 18. März 2012, 06:51:56 schrieb Bernhard M. Wiedemann: ..
our gcc46.spec had in the armv5 section - --with-float=softfp
which I changed to =soft for a local build (OBS does not let me branch a broken package). And it made gcc work finally for armv5 - yay! ...
We can do so, that would mean that we don't use hard floating point instructions inside the soft fp ABI anymore.
It sounds sane to me, however, I do not know if we have limited us here on puropose.
Some other compilation errors may come back, because the soft FP support may not be good enough.
Question is how many armv5 with and without fpu unit are out there.
Does it make sense to limit us to the ones with hard fpu ? Or would an armv5 port make no sense at all then ?
IIUC most armv5 CPUs come without FPU, so --with-float=soft is the correct solution. I don't know why we have softfp in there - probably just a screwup :).
Either way, the armv5 port is supposed to be the "most compatible common ground" that can run everything the accelerated armv7hf port can not run. So it definitely doesn't make sense to use the FPU.
Alex
The armv5 fix made it into factory 9 days ago: https://build.opensuse.org/request/show/110132 Now, OBS only needs to rebuild some thousand packages before I can try it on my openRD. Ciao Bernhard M. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk914e4ACgkQSTYLOx37oWQVQACdG3StD2u9n904W6w+ht/ek73F +ukAoM1xasi2IAn5Ewx12/g1lKoSoYmS =HZLx -----END PGP SIGNATURE----- -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
participants (5)
-
Adrian Schröter
-
Alexander Graf
-
Bernhard M. Wiedemann
-
Bernhard M. Wiedemann
-
Guillaume Gardet