LinearTapeFileSystem/ltfs

Issue during compilation with glibc >= 2.30

オープン

#389 opened on 2023/03/27

 (1 件のコメント) (0 件のリアクション) (0 人の担当者)C (102 件のフォーク)auto 404
Hacktoberfestenhancementgood first issuehelp wanted

Repository metrics

Stars
 (337 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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

コントリビューターガイド