Skip to contentSkip to conversation

Build failure on armhf

DISCUSSION Andreas Enge 3 participants 5 messages Dec 12, 2015 – Jan 21, 2016

lore
Share & tools
lore
#0 lore raw

Hello,

numactl fails to build on armhf:
http://hydra.gnu.org/build/866208/log/raw
with the following error message:
syscall.c:113:2: error: #error "Add syscalls for your architecture or update kernel headers"
#error "Add syscalls for your architecture or update kernel headers"

Is this a known limitation? If yes, could it maybe be detected during the call to "configure"?

Andreas

#1 lore raw

Hello,

as I do not see the following message appear on the mailing list archive, I am sending it again, fearing it has not been posted.

Andreas

Quoted 8 lines · Andreas Enge

numactl fails to build on armhf:

   http://hydra.gnu.org/build/866208/log/raw

with the following error message:
syscall.c:113:2: error: #error "Add syscalls for your architecture or update kernel headers"
#error "Add syscalls for your architecture or update kernel headers"

Is this a known limitation? If yes, could it maybe be detected during the call to "configure"?

#2 lore raw
In reply to Andreas Enge

Hi Andreas,

Quoted 7 lines · Andreas Enge

numactl fails to build on armhf:

   http://hydra.gnu.org/build/866208/log/raw

with the following error message:
syscall.c:113:2: error: #error "Add syscalls for your architecture or update kernel headers"
#error "Add syscalls for your architecture or update kernel headers"

Is this a known limitation?

So syscall.c defines the syscall numbers for syscalls such as set_mempolicy, migrate_pages, etc. The syscalls numbers are different on different Linux platforms, so it's only currently defined for a handful of platforms.

As the error message says, if you find that error, maybe you should consider adding the syscall numbers for your platform there?

Quoted 2 lines

If yes, could it maybe be detected during the
call to "configure"?

The detection is fairly complex, it mainly depends on compiler macros being defined for your platform. Furthermore, adding platform detection code to configure would probably create duplication, in that both configure.ac and syscalls.c would need to be updated to add support for a new platform.

What is the problem you are trying to solve?

Cheers,
Filipe

#3 lore raw
Quoted 1 line

What is the problem you are trying to solve?

I guess he wants to build on that platform.

Adding the numbers to syscall.c is also only needed if the necessary syscall numbers are missing in asm/unistd.h. It really was originally only for ancient distributions where the headers predate numa support. So updating that may also help.

If your headers don't have numa support at all it may be also possible that the platform simply doesn't support NUMA. In that case building numactl is pointless.

-Andi

#4 lore raw

Hello,

and sorry for taking my time in replying around the Christmas holidays.

Quoted 1 line · Andi Kleen

I guess he wants to build on that platform.

Indeed. However, my situation is a bit special: I am doing QA work on the Guix GNU/Linux distribution and noticed numactl did not compile. Personally, I am not using the software...

Quoted 3 lines

If your headers don't have numa support at all it may be also possible that the platform simply doesn't support NUMA. In that case building numactl is pointless.

So I understand that numactl is not supported on armhf? In that case, we can simply disable its build on this architecture.

Andreas