Teeworlds: La construction ne parvient pas à se construire sur non-x86 (à cause de immintrin.h)

Créé le 15 déc. 2018  ·  5Commentaires  ·  Source: teeworlds/teeworlds

../src/engine/client/client.cpp:5:10: fatal error: immintrin.h: No such file or directory
 #include <immintrin.h> //_mm_pause
          ^~~~~~~~~~~~~
bug build system

Commentaire le plus utile

Copié à partir de https://github.com/teeworlds/teeworlds/issues/1844#issuecomment -446756342 :

Notez que cela ne sera toujours pas compilé pour les architectures autres que celles d'Intel (et AMD). Le code en question est assez inportable :

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L5

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L1779

Je suggère de le supprimer jusqu'à ce qu'une solution portable soit trouvée. Le code de Teeworlds (en particulier en dehors de src/base/system.c) ne devrait pas s'appuyer sur de telles fonctions spécifiques au compilateur et à l'architecture sans repli.

Pour élaborer : il existe des architectures de processeurs en plus d'Intel, et nous ne devrions pas nous fier à une architecture spécifique. Si nous le faisons, nous devrions le faire dans src/base/system.c mais ne pas faire échouer la compilation sur des architectures inconnues.

Tous les 5 commentaires

Le correctif n'a pas été porté sur CMake, je crois.
Sur 64 bits, vous pouvez simplement commenter le #include <immintrin.h> .
Si cela ne fonctionne pas, pouvez-vous essayer d'ajouter le drapeau de compilation -msse2 ? Cela devrait le réparer à ma connaissance.

1844

@Dune-jr Je ne pense pas que -msse2 fonctionnera sur ppc64le ou s390x ou arm, car il est spécifique à x86.

Droite.
Puisque vous êtes sur 64 bits, cela devrait simplement fonctionner sans #include <immintrin.h>

@Dune-jr il y a aussi un bras 32bit ;)

Copié à partir de https://github.com/teeworlds/teeworlds/issues/1844#issuecomment -446756342 :

Notez que cela ne sera toujours pas compilé pour les architectures autres que celles d'Intel (et AMD). Le code en question est assez inportable :

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L5

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L1779

Je suggère de le supprimer jusqu'à ce qu'une solution portable soit trouvée. Le code de Teeworlds (en particulier en dehors de src/base/system.c) ne devrait pas s'appuyer sur de telles fonctions spécifiques au compilateur et à l'architecture sans repli.

Pour élaborer : il existe des architectures de processeurs en plus d'Intel, et nous ne devrions pas nous fier à une architecture spécifique. Si nous le faisons, nous devrions le faire dans src/base/system.c mais ne pas faire échouer la compilation sur des architectures inconnues.

Cette page vous a été utile?
0 / 5 - 0 notes