[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

New version of muscle contains asm statements which prevent building on non-Intel architectures



Hi,

I've checked the build logs of muscle version 5.1[1] and noticed that
for instance on arm64 the build fails with:

g++ -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -pthread -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -fopenmp -ffast-math -c -o Linux/transaln.o transaln.cpp
In file included from testlog.cpp:2:
timing.h: In function ‘void cmd_testlog()’:
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~
timing.h:26:9: error: impossible constraint in ‘asm’
   26 |         __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
      |         ^~~~~~~


While the code contains a few arm64 specific bits:

muscle(master) $ grep -Ri arm
src/myutils.cpp:#elif defined(__arm64__)
src/myutils.cpp:        return "osxarm64";
src/myutils.h:#if defined(__x86_64__) || defined(_M_X64) || defined(__arm64__)


the port does not seem to be complete.  Am I missing something?

Kind regards

     Andreas.


[1] https://buildd.debian.org/status/package.php?p=muscle

-- 
http://fam-tille.de


Reply to: