LinearTapeFileSystem/ltfs

Issue during compilation with glibc >= 2.30

Ouverte

#389 ouverte le 27 mars 2023

 (1 commentaire) (0 réaction) (0 personne assignée)C (102 forks)auto 404
Hacktoberfestenhancementgood first issuehelp wanted

Métriques du dépôt

Stars
 (337 étoiles)
Métriques de merge PR
 (Merge moyen 39j 19h) (13 PRs mergées en 30 j)

Description

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

Guide contributeur