Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:Maintenance:4664
rpm.openSUSE_13.1_Update
getauxval.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File getauxval.diff of Package rpm.openSUSE_13.1_Update
commit 60835b20180c1be351ff95fa8c8d930afada0e4c Author: Kirill A. Shutemov <kirill@shutemov.name> Date: Mon Jul 1 03:25:32 2013 +0300 Use getauxval(3) to read auxv data glibc >= 2.16 provides getauxval(): a reliable way to retrieve a value from the auxiliary vector. It doesn't rely on /proc filesystem. Let's switch to it and get rid of /proc dependency. Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Signed-off-by: Panu Matilainen <pmatilai@redhat.com> --- configure.ac.orig 2013-07-12 12:25:38.000000000 +0000 +++ configure.ac 2013-07-12 12:35:18.000000000 +0000 @@ -518,6 +518,7 @@ dnl Checks for library functions. AC_CHECK_FUNCS(putenv) AC_CHECK_FUNCS(mempcpy) AC_CHECK_FUNCS(fdatasync) +AC_CHECK_FUNCS(getauxval) AC_REPLACE_FUNCS(stpcpy stpncpy) --- lib/rpmrc.c.orig 2013-07-12 12:25:38.000000000 +0000 +++ lib/rpmrc.c 2013-07-12 12:34:34.000000000 +0000 @@ -20,6 +20,10 @@ #define __power_pc() 0 #endif +#ifdef HAVE_GETAUXVAL +#include <sys/auxv.h> +#endif + #include <rpm/rpmlib.h> /* RPM_MACTABLE*, Rc-prototypes */ #include <rpm/rpmmacro.h> #include <rpm/rpmfileutil.h> @@ -922,13 +926,19 @@ static int is_geode(void) #if defined(__linux__) && defined(__powerpc__) /** - * Populate rpmat structure with parsed info from /proc/self/auxv + * Populate rpmat structure with auxv values */ -static void parse_auxv(void) +static void read_auxv(void) { static int oneshot = 1; if (oneshot) { +#ifdef HAVE_GETAUXVAL + rpmat.platform = (char *) getauxval(AT_PLATFORM); + if (!rpmat.platform) + rpmat.platform = ""; + rpmat.hwcap = getauxval(AT_HWCAP); +#else rpmat.platform = ""; int fd = open("/proc/self/auxv", O_RDONLY); @@ -953,6 +963,7 @@ static void parse_auxv(void) } close(fd); } +#endif oneshot = 0; /* only try once even if it fails */ } return; @@ -972,7 +983,7 @@ static void defaultMachine(const char ** #if defined(__linux__) && defined(__powerpc__) /* Populate rpmat struct with hw info */ - parse_auxv(); + read_auxv(); #endif while (!gotDefaults) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor