mirror of
https://git.freebsd.org/ports.git
synced 2025-06-23 05:30:31 -04:00
Building net/ifdepd with clang and lld 13 results in a few warnings, and a link error: cc -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wall -Wnested-externs -Wpointer-arith -Winline -Wcast-qual -Wredundant-decls -c ifdepd.c -o ifdepd.o ifdepd.c:420:4: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation] free(d_ints); ^ ifdepd.c:418:2: note: previous statement is here if (D) ^ ifdepd.c:434:4: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation] free(s_ints); ^ ifdepd.c:432:2: note: previous statement is here if (S) ^ 2 warnings generated. cc -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wall -Wnested-externs -Wpointer-arith -Winline -Wcast-qual -Wredundant-decls -o ifdepd ifdepd.o ld: error: undefined symbol: cleanup >>> referenced by ifdepd.c >>> ifdepd.o:(main) >>> referenced by ifdepd.c >>> ifdepd.o:(main) >>> referenced by ifdepd.c >>> ifdepd.o:(main) >>> referenced 1 more times cc: error: linker command failed with exit code 1 (use -v to see invocation) *** Error code 1 The warnings about misleading indentation are indicating an actual bug, which can be fixed by adding a few braces. The link error is because ifdepd uses an inline function without either a static or an extern specifier. Fix this by adding a static specifier. Approved by: alex@hugo.bmg.gv.at (maintainer) PR: 258512 MFH: 2021Q3
44 lines
957 B
C
44 lines
957 B
C
--- ifdepd.c.orig 2011-04-12 13:24:48 UTC
|
|
+++ ifdepd.c
|
|
@@ -188,7 +188,7 @@ void int_down(int_name if_name) {
|
|
}
|
|
}
|
|
|
|
-inline void cleanup() {
|
|
+static inline void cleanup() {
|
|
if (s_opt != NULL)
|
|
free(s_opt);
|
|
if (d_opt != NULL)
|
|
@@ -204,7 +204,7 @@ void usage(const char *progname) {
|
|
progname);
|
|
}
|
|
|
|
-inline int del_count(const char *s, const char d) {
|
|
+static inline int del_count(const char *s, const char d) {
|
|
int cnt=0, a;
|
|
for (a=0; s[a] != '\0'; a++)
|
|
if (s[a] == d)
|
|
@@ -415,9 +415,10 @@ int main(int argc, char *argv[]) {
|
|
if (!ints_exists(s_ints, s_cnt)) {
|
|
free(s_opt);
|
|
free(s_ints);
|
|
- if (D)
|
|
+ if (D) {
|
|
free(d_opt);
|
|
free(d_ints);
|
|
+ }
|
|
exit(1);
|
|
}
|
|
break;
|
|
@@ -429,9 +430,10 @@ int main(int argc, char *argv[]) {
|
|
if (!ints_exists(d_ints, d_cnt)) {
|
|
free(d_opt);
|
|
free(d_ints);
|
|
- if (S)
|
|
+ if (S) {
|
|
free(s_opt);
|
|
free(s_ints);
|
|
+ }
|
|
exit(1);
|
|
}
|
|
break;
|