Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Feb 2026 21:33:25 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 293370] elf_aux_info(3): returns ENOENT for AT_HWCAP(2)
Message-ID:  <bug-293370-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293370

            Bug ID: 293370
           Summary: elf_aux_info(3): returns ENOENT for AT_HWCAP(2)
           Product: Base System
           Version: 15.0-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: misc
          Assignee: bugs@FreeBSD.org
          Reporter: 2khramtsov@gmail.com

Found via bug 292864. For usage example in port see CPP/Windows/SystemInfo.cpp
("Windows/SystemInfo.cpp" does not mean WIN32 for 7z), or the following
(reproducible in FreeBSD-15.0-RELEASE-amd64-ufs.raw VM image):

Linux getauxval(3):
RETURN VALUE
       On success, getauxval() returns the value corresponding to type.  If
       type is not found, 0 is returned.

FreeBSD elf_aux_info(3):
RETURN VALUES
     Returns zero on success, or an error number on failure.

example.c:

#include <sys/auxv.h>
#include <stdio.h>
#include <string.h>

#if defined(__FreeBSD__)
static unsigned long
MY_getauxval(int aux)
{
        int err;
        unsigned long val;

        err = elf_aux_info(aux, &val, sizeof(val));
        if (err) {
                printf("elf_aux_info: %s\n", strerror(err));
                val = 0;        /* 7-zip wraps in MY_getauxval
                                        then returns 0 on failure */
        }

        return (val);
}
#elif defined(__linux__)
#define MY_getauxval getauxval
#endif

int
main(void)
{
        unsigned long h;

        h = MY_getauxval(AT_HWCAP);
        printf("hwcap:%lx\n", h);
        h = MY_getauxval(AT_HWCAP2);
        if (h != 0)
                printf("hwcap2:%lx\n", h);

        return (0);
}

@debian13:~$ cc example.c && ./a.out
hwcap:2
hwcap2:2

@freebsd15:~ $ cc example.c && ./a.out
elf_aux_info(): No such file or directory
hwcap:0
elf_aux_info(): No such file or directory

-- 
You are receiving this mail because:
You are the assignee for the bug.

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-293370-227>