Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to update util-linux to 2.40 on Ubuntu 16.04 #2945

Open
13648067412 opened this issue Apr 10, 2024 · 4 comments
Open

How to update util-linux to 2.40 on Ubuntu 16.04 #2945

13648067412 opened this issue Apr 10, 2024 · 4 comments

Comments

@13648067412
Copy link

13648067412 commented Apr 10, 2024

Visit the github repository of util-linux to obtain the source code for upgrade,execute the "./configure --disable-liblastlog2 && make" command, and the following error is reported

make all-recursive
make[1]: Entering directory '/home/sinovision/util-linux-2.40'
Making all in po
make[2]: Entering directory '/home/sinovision/util-linux-2.40/po'
test ! -f ./util-linux.pot ||
test -z "ca.gmo cs.gmo da.gmo de.gmo es.gmo et.gmo eu.gmo fi.gmo fr.gmo gl.gmo hr.gmo hu.gmo id.gmo it.gmo ja.gmo ko.gmo nl.gmo pl.gmo pt.gmo pt_BR.gmo ru.gmo sk.gmo sl.gmo sr.gmo sv.gmo tr.gmo uk.gmo vi.gmo zh_CN.gmo zh_TW.gmo" || make ca.gmo cs.gmo da.gmo de.gmo es.gmo et.gmo eu.gmo fi.gmo fr.gmo gl.gmo hr.gmo hu.gmo id.gmo it.gmo ja.gmo ko.gmo nl.gmo pl.gmo pt.gmo pt_BR.gmo ru.gmo sk.gmo sl.gmo sr.gmo sv.gmo tr.gmo uk.gmo vi.gmo zh_CN.gmo zh_TW.gmo
make[3]: Entering directory '/home/sinovision/util-linux-2.40/po'
rm -f ca.gmo && : -c --statistics --verbose -o ca.gmo ca.po
mv: cannot stat 't-ca.gmo': No such file or directory
Makefile:662: recipe for target 'ca.gmo' failed
make[3]: *** [ca.gmo] Error 1
make[3]: Leaving directory '/home/sinovision/util-linux-2.40/po'
Makefile:699: recipe for target 'stamp-po' failed
make[2]: *** [stamp-po] Error 2
make[2]: Leaving directory '/home/sinovision/util-linux-2.40/po'
Makefile:16921: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/sinovision/util-linux-2.40'
Makefile:7280: recipe for target 'all' failed
make: *** [all] Error 2

@karelzak
Copy link
Collaborator

You need to install the gettext (or gettext-devel) package. The script ./autogen.sh warns if you do not have gettext. You can also disable po/ stuff by ./configure --disable-nls

@13648067412
Copy link
Author

Thanks for your reply, but I still have some questions.

Install the package and execute the ./configure --disable-liblastlog2 && make command, or directly execute the ./configure --disable-liblastlog2 --disable-nls && make command, and the following error is reported.

CC misc-utils/lsfd-lsfd-unkn.o
misc-utils/lsfd-unkn.c:1029:12: error: ‘BPF_OBJ_NAME_LEN’ undeclared here (not in a function)
char name[BPF_OBJ_NAME_LEN + 1];
^
misc-utils/lsfd-unkn.c: In function ‘anon_bpf_prog_get_more_info’:
misc-utils/lsfd-unkn.c:1113:3: error: unknown field ‘prog_id’ specified in initializer
.prog_id = (int32_t)prog_data->id,
^
misc-utils/lsfd-unkn.c:1114:3: error: unknown field ‘next_id’ specified in initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1114:14: warning: excess elements in union initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1114:14: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1115:3: error: unknown field ‘open_flags’ specified in initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1115:17: warning: excess elements in union initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1115:17: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1112:24: warning: missing braces around initializer [-Wmissing-braces]
union bpf_attr attr = {
^
misc-utils/lsfd-unkn.c:1112:24: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1117:9: error: variable ‘info’ has initializer but incomplete type
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1117:32: warning: excess elements in struct initializer
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1117:32: note: (near initialization for ‘info’)
misc-utils/lsfd-unkn.c:1117:23: error: storage size of ‘info’ isn’t known
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1119:3: error: unknown field ‘info’ specified in initializer
.info.info_len = sizeof(info),
^
misc-utils/lsfd-unkn.c:1120:3: error: unknown field ‘info’ specified in initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1120:16: warning: excess elements in union initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1120:16: note: (near initialization for ‘info_attr’)
misc-utils/lsfd-unkn.c:1123:32: error: ‘BPF_PROG_GET_FD_BY_ID’ undeclared (first use in this function)
int bpf_fd = syscall(SYS_bpf, BPF_PROG_GET_FD_BY_ID, &attr, sizeof(attr));
^
misc-utils/lsfd-unkn.c:1123:32: note: each undeclared identifier is reported only once for each function it appears in
misc-utils/lsfd-unkn.c:1127:11: error: ‘union bpf_attr’ has no member named ‘info’
info_attr.info.bpf_fd = bpf_fd;
^
misc-utils/lsfd-unkn.c:1128:23: error: ‘BPF_OBJ_GET_INFO_BY_FD’ undeclared (first use in this function)
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from /usr/include/sched.h:29:0,
from ./include/cpuset.h:10,
from ./include/path.h:139,
from misc-utils/lsfd.h:35,
from misc-utils/lsfd-unkn.c:30:
misc-utils/lsfd-unkn.c:33:3: error: ‘union bpf_attr’ has no member named ‘info’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1128:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from ./include/list.h:15:0,
from misc-utils/lsfd.h:33,
from misc-utils/lsfd-unkn.c:30:
./include/c.h:201:55: error: ‘union bpf_attr’ has no member named ‘info’
#define sizeof_member(TYPE, MEMBER) sizeof(((TYPE *)0)->MEMBER)
^
misc-utils/lsfd-unkn.c:33:28: note: in expansion of macro ‘sizeof_member’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1128:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
misc-utils/lsfd-unkn.c:1117:23: warning: unused variable ‘info’ [-Wunused-variable]
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c: In function ‘anon_bpf_map_get_more_info’:
misc-utils/lsfd-unkn.c:1296:3: error: unknown field ‘map_id’ specified in initializer
.map_id = (int32_t)map_data->id,
^
misc-utils/lsfd-unkn.c:1297:3: error: unknown field ‘next_id’ specified in initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1297:14: warning: excess elements in union initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1297:14: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1298:3: error: unknown field ‘open_flags’ specified in initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1298:17: warning: excess elements in union initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1298:17: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1295:24: warning: missing braces around initializer [-Wmissing-braces]
union bpf_attr attr = {
^
misc-utils/lsfd-unkn.c:1295:24: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1300:9: error: variable ‘info’ has initializer but incomplete type
struct bpf_map_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1300:31: warning: excess elements in struct initializer
struct bpf_map_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1300:31: note: (near initialization for ‘info’)
misc-utils/lsfd-unkn.c:1300:22: error: storage size of ‘info’ isn’t known
struct bpf_map_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1302:3: error: unknown field ‘info’ specified in initializer
.info.info_len = sizeof(info),
^
misc-utils/lsfd-unkn.c:1303:3: error: unknown field ‘info’ specified in initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1303:16: warning: excess elements in union initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1303:16: note: (near initialization for ‘info_attr’)
misc-utils/lsfd-unkn.c:1306:32: error: ‘BPF_MAP_GET_FD_BY_ID’ undeclared (first use in this function)
int bpf_fd = syscall(SYS_bpf, BPF_MAP_GET_FD_BY_ID, &attr, sizeof(attr));
^
misc-utils/lsfd-unkn.c:1310:11: error: ‘union bpf_attr’ has no member named ‘info’
info_attr.info.bpf_fd = bpf_fd;
^
misc-utils/lsfd-unkn.c:1311:23: error: ‘BPF_OBJ_GET_INFO_BY_FD’ undeclared (first use in this function)
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from /usr/include/sched.h:29:0,
from ./include/cpuset.h:10,
from ./include/path.h:139,
from misc-utils/lsfd.h:35,
from misc-utils/lsfd-unkn.c:30:
misc-utils/lsfd-unkn.c:33:3: error: ‘union bpf_attr’ has no member named ‘info’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1311:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from ./include/list.h:15:0,
from misc-utils/lsfd.h:33,
from misc-utils/lsfd-unkn.c:30:
./include/c.h:201:55: error: ‘union bpf_attr’ has no member named ‘info’
#define sizeof_member(TYPE, MEMBER) sizeof(((TYPE *)0)->MEMBER)
^
misc-utils/lsfd-unkn.c:33:28: note: in expansion of macro ‘sizeof_member’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1311:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
misc-utils/lsfd-unkn.c:1300:22: warning: unused variable ‘info’ [-Wunused-variable]
struct bpf_map_info info = { 0 };
^
Makefile:13705: recipe for target 'misc-utils/lsfd-lsfd-unkn.o' failed
make[2]: *** [misc-utils/lsfd-lsfd-unkn.o] Error 1
make[2]: Leaving directory '/home/sinovision/util-linux-2.40'
Makefile:16921: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/sinovision/util-linux-2.40'
Makefile:7280: recipe for target 'all' failed
make: *** [all] Error 2

@karelzak
Copy link
Collaborator

It seems like you do not have /usr/include/linux/bpf.h (which is usually in the kernel-headers package).

The ./configure should be more careful and test for the file. I'll fix it.

karelzak added a commit to karelzak/util-linux-work that referenced this issue Apr 10, 2024
Addresses: util-linux#2933
Addresses: util-linux#2945
Signed-off-by: Karel Zak <kzak@redhat.com>
@13648067412
Copy link
Author

I tried replacing the existing file configure.ac, but it didn't work. There are still some problems. Hope you can help me again.

CC misc-utils/lsfd-lsfd-unkn.o
misc-utils/lsfd-unkn.c:1029:12: error: ‘BPF_OBJ_NAME_LEN’ undeclared here (not in a function)
char name[BPF_OBJ_NAME_LEN + 1];
^
misc-utils/lsfd-unkn.c: In function ‘anon_bpf_prog_get_more_info’:
misc-utils/lsfd-unkn.c:1113:3: error: unknown field ‘prog_id’ specified in initializer
.prog_id = (int32_t)prog_data->id,
^
misc-utils/lsfd-unkn.c:1114:3: error: unknown field ‘next_id’ specified in initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1114:14: warning: excess elements in union initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1114:14: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1115:3: error: unknown field ‘open_flags’ specified in initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1115:17: warning: excess elements in union initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1115:17: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1112:24: warning: missing braces around initializer [-Wmissing-braces]
union bpf_attr attr = {
^
misc-utils/lsfd-unkn.c:1112:24: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1117:9: error: variable ‘info’ has initializer but incomplete type
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1117:32: warning: excess elements in struct initializer
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1117:32: note: (near initialization for ‘info’)
misc-utils/lsfd-unkn.c:1117:23: error: storage size of ‘info’ isn’t known
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1119:3: error: unknown field ‘info’ specified in initializer
.info.info_len = sizeof(info),
^
misc-utils/lsfd-unkn.c:1120:3: error: unknown field ‘info’ specified in initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1120:16: warning: excess elements in union initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1120:16: note: (near initialization for ‘info_attr’)
misc-utils/lsfd-unkn.c:1123:32: error: ‘BPF_PROG_GET_FD_BY_ID’ undeclared (first use in this function)
int bpf_fd = syscall(SYS_bpf, BPF_PROG_GET_FD_BY_ID, &attr, sizeof(attr));
^
misc-utils/lsfd-unkn.c:1123:32: note: each undeclared identifier is reported only once for each function it appears in
misc-utils/lsfd-unkn.c:1127:11: error: ‘union bpf_attr’ has no member named ‘info’
info_attr.info.bpf_fd = bpf_fd;
^
misc-utils/lsfd-unkn.c:1128:23: error: ‘BPF_OBJ_GET_INFO_BY_FD’ undeclared (first use in this function)
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from /usr/include/sched.h:29:0,
from ./include/cpuset.h:10,
from ./include/path.h:139,
from misc-utils/lsfd.h:35,
from misc-utils/lsfd-unkn.c:30:
misc-utils/lsfd-unkn.c:33:3: error: ‘union bpf_attr’ has no member named ‘info’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1128:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from ./include/list.h:15:0,
from misc-utils/lsfd.h:33,
from misc-utils/lsfd-unkn.c:30:
./include/c.h:201:55: error: ‘union bpf_attr’ has no member named ‘info’
#define sizeof_member(TYPE, MEMBER) sizeof(((TYPE *)0)->MEMBER)
^
misc-utils/lsfd-unkn.c:33:28: note: in expansion of macro ‘sizeof_member’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1128:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
misc-utils/lsfd-unkn.c:1117:23: warning: unused variable ‘info’ [-Wunused-variable]
struct bpf_prog_info info = { 0 };
^
misc-utils/lsfd-unkn.c: In function ‘anon_bpf_map_get_more_info’:
misc-utils/lsfd-unkn.c:1296:3: error: unknown field ‘map_id’ specified in initializer
.map_id = (int32_t)map_data->id,
^
misc-utils/lsfd-unkn.c:1297:3: error: unknown field ‘next_id’ specified in initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1297:14: warning: excess elements in union initializer
.next_id = 0,
^
misc-utils/lsfd-unkn.c:1297:14: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1298:3: error: unknown field ‘open_flags’ specified in initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1298:17: warning: excess elements in union initializer
.open_flags = 0,
^
misc-utils/lsfd-unkn.c:1298:17: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1295:24: warning: missing braces around initializer [-Wmissing-braces]
union bpf_attr attr = {
^
misc-utils/lsfd-unkn.c:1295:24: note: (near initialization for ‘attr’)
misc-utils/lsfd-unkn.c:1300:9: error: variable ‘info’ has initializer but incomplete type
struct bpf_map_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1300:31: warning: excess elements in struct initializer
struct bpf_map_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1300:31: note: (near initialization for ‘info’)
misc-utils/lsfd-unkn.c:1300:22: error: storage size of ‘info’ isn’t known
struct bpf_map_info info = { 0 };
^
misc-utils/lsfd-unkn.c:1302:3: error: unknown field ‘info’ specified in initializer
.info.info_len = sizeof(info),
^
misc-utils/lsfd-unkn.c:1303:3: error: unknown field ‘info’ specified in initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1303:16: warning: excess elements in union initializer
.info.info = (uint64_t)(uintptr_t)&info,
^
misc-utils/lsfd-unkn.c:1303:16: note: (near initialization for ‘info_attr’)
misc-utils/lsfd-unkn.c:1306:32: error: ‘BPF_MAP_GET_FD_BY_ID’ undeclared (first use in this function)
int bpf_fd = syscall(SYS_bpf, BPF_MAP_GET_FD_BY_ID, &attr, sizeof(attr));
^
misc-utils/lsfd-unkn.c:1310:11: error: ‘union bpf_attr’ has no member named ‘info’
info_attr.info.bpf_fd = bpf_fd;
^
misc-utils/lsfd-unkn.c:1311:23: error: ‘BPF_OBJ_GET_INFO_BY_FD’ undeclared (first use in this function)
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from /usr/include/sched.h:29:0,
from ./include/cpuset.h:10,
from ./include/path.h:139,
from misc-utils/lsfd.h:35,
from misc-utils/lsfd-unkn.c:30:
misc-utils/lsfd-unkn.c:33:3: error: ‘union bpf_attr’ has no member named ‘info’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1311:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
In file included from ./include/list.h:15:0,
from misc-utils/lsfd.h:33,
from misc-utils/lsfd-unkn.c:30:
./include/c.h:201:55: error: ‘union bpf_attr’ has no member named ‘info’
#define sizeof_member(TYPE, MEMBER) sizeof(((TYPE *)0)->MEMBER)
^
misc-utils/lsfd-unkn.c:33:28: note: in expansion of macro ‘sizeof_member’
(offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER))
^
misc-utils/lsfd-unkn.c:1311:59: note: in expansion of macro ‘offsetofend’
if (syscall(SYS_bpf, BPF_OBJ_GET_INFO_BY_FD, &info_attr, offsetofend(union bpf_attr, info)) == 0) {
^
misc-utils/lsfd-unkn.c:1300:22: warning: unused variable ‘info’ [-Wunused-variable]
struct bpf_map_info info = { 0 };
^
Makefile:13705: recipe for target 'misc-utils/lsfd-lsfd-unkn.o' failed
make[2]: *** [misc-utils/lsfd-lsfd-unkn.o] Error 1
make[2]: Leaving directory '/home/sinovision/util-linux-2.40'
Makefile:16921: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/sinovision/util-linux-2.40'
Makefile:7280: recipe for target 'all' failed
make: *** [all] Error 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants