LinearTapeFileSystem/ltfs

Issue during compilation with glibc >= 2.30

Aperta

#389 aperta il 27 mar 2023

 (1 commento) (0 reazioni) (0 assegnatari)C (102 fork)auto 404
Hacktoberfestenhancementgood first issuehelp wanted

Metriche repository

Star
 (337 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

On Linux systems which use glibc ≥2.30 the following will be logged during compilation:

In file included from arch/arch_info.c:52:0: /usr/include/sys/sysctl.h:21:2: error: #warning "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror=cpp] #warning "The <sys/sysctl.h> header is deprecated and will be removed." ^~~~~~~ cc1: all warnings being treated as errors

The release notes for glibc 2.30 read:

“The Linux-specific <sys/sysctl.h> header and the sysctl function have been deprecated and will be removed from a future version of glibc. Application should directly access /proc instead. For obtaining random bits, the getentropy function can be used.”

(See also https://sourceware.org/ml/libc-alpha/2019-08/msg00029.html for the full release notes.)

To Reproduce

1 install glibc and glibc-dev / glibc-devel >= 2.30

2 compile ltfs v. 2.4.5.0 : ./autogen.sh ./configure --prefix=$1 --enable-message-checker --enable-warning-as-error make

Solution

Because of the deprecated sysctl() function, sysconf() should be used instead.

Source file src/libltfs/arch/arch_info.c

Guida contributor