From: Phil Sutter <phil@nwl.cc>
To: Pablo Neira Ayuso <pablo@netfilter.org>
Cc: netfilter-devel@vger.kernel.org
Subject: [nft PATCH] libnftables: Split code into frontend and library
Date: Tue, 14 Nov 2017 21:17:10 +0100 [thread overview]
Message-ID: <20171114201710.16419-1-phil@nwl.cc> (raw)
This finally creates the libnftables shared object.
For some reason, this causes two compiler warnings to appear:
| parser_bison.y: In function 'nft_parse':
| parser_bison.y:131:3: warning: implicit declaration of function 'nft_set_debug' [-Wimplicit-function-declaration]
| nft_set_debug(1, scanner);
| ^~~~~~~~~~~~~
| parser_bison.c:64:25: warning: implicit declaration of function 'nft_lex' [-Wimplicit-function-declaration]
| #define yylex nft_lex
| ^
| parser_bison.c:4745:16: note: in expansion of macro 'yylex'
| yychar = yylex (&yylval, &yylloc, scanner);
So this patch contains a workaround, namely declaring both functions
in src/parser_bison.y. During linking the objects are found, so this is
rather a matter of cosmetics.
Signed-off-by: Phil Sutter <phil@nwl.cc>
---
.gitignore | 3 +++
Makefile.am | 3 +++
configure.ac | 4 ++++
libnftables.pc.in | 15 +++++++++++++++
src/.gitignore | 1 +
src/Makefile.am | 24 +++++++++++++++---------
src/parser_bison.y | 4 ++++
7 files changed, 45 insertions(+), 9 deletions(-)
create mode 100644 libnftables.pc.in
diff --git a/.gitignore b/.gitignore
index 009f7d005afa1..64af328e0abf9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
# Dependency and object files
.*.d
+*.lo
*.o
# Generated by autoconf/configure/automake
@@ -8,6 +9,7 @@ Makefile
Makefile.in
src/Makefile.in
src/.deps/
+src/.libs/
stamp-h1
config.h
config.h.in
@@ -17,6 +19,7 @@ config.status
configure
autom4te.cache
build-aux/
+libnftables.pc
libtool
missing
depcomp
diff --git a/Makefile.am b/Makefile.am
index 10aa40f14127f..9af25ded836b8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,3 +6,6 @@ SUBDIRS = src \
files
EXTRA_DIST = tests
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libnftables.pc
diff --git a/configure.ac b/configure.ac
index 099a4a5e81ec6..a97d9e73270dc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -56,6 +56,9 @@ then
exit 1
fi
+AM_PROG_AR
+AM_PROG_LIBTOOL
+
AC_CHECK_PROG(DOCBOOK2X_MAN, [docbook2x-man], [docbook2x-man], [no])
AC_CHECK_PROG(DOCBOOK2MAN, [docbook2man], [docbook2man], [no])
AC_CHECK_PROG(DB2X_DOCBOOK2MAN, [db2x_docbook2man], [db2x_docbook2man], [no])
@@ -138,6 +141,7 @@ AC_CHECK_FUNCS([memmove memset strchr strdup strerror strtoull])
AC_CONFIG_FILES([ \
Makefile \
+ libnftables.pc \
src/Makefile \
include/Makefile \
include/nftables/Makefile \
diff --git a/libnftables.pc.in b/libnftables.pc.in
new file mode 100644
index 0000000000000..6431d48cf6f2c
--- /dev/null
+++ b/libnftables.pc.in
@@ -0,0 +1,15 @@
+# libnftables pkg-config file
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libnftables
+Description: Netfilter nf_tables user library
+URL: http://netfilter.org/projects/nftables/
+Version: @VERSION@
+Requires:
+Conflicts:
+Libs: -L${libdir} -lnftables
+Cflags: -I${includedir}
diff --git a/src/.gitignore b/src/.gitignore
index 23e6ae030f107..36d6acd1e4d01 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,3 +1,4 @@
+libnftables.la
parser.c
parser.h
scanner.c
diff --git a/src/Makefile.am b/src/Makefile.am
index 4d613a731dfb9..9f7a4bfbb90a4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,7 +27,9 @@ parser_bison.o scanner.o: AM_CFLAGS += -Wno-missing-prototypes -Wno-missing-decl
BUILT_SOURCES = parser_bison.h
-nft_SOURCES = main.c \
+lib_LTLIBRARIES = libnftables.la
+
+libnftables_la_SOURCES = \
rule.c \
statement.c \
datatype.c \
@@ -59,19 +61,23 @@ nft_SOURCES = main.c \
parser_bison.y \
libnftables.c
-if BUILD_CLI
-nft_SOURCES += cli.c
-endif
-
if BUILD_MINIGMP
mini-gmp.o: AM_CFLAGS += -Wno-sign-compare
-nft_SOURCES += mini-gmp.c
+libnftables_la_SOURCES += mini-gmp.c
endif
-nft_LDADD = ${LIBMNL_LIBS} ${LIBNFTNL_LIBS}
+libnftables_la_LIBADD = ${LIBMNL_LIBS} ${LIBNFTNL_LIBS}
if BUILD_XTABLES
-nft_SOURCES += xt.c
-nft_LDADD += ${XTABLES_LIBS}
+libnftables_la_SOURCES += xt.c
+libnftables_la_LIBADD += ${XTABLES_LIBS}
endif
+
+nft_SOURCES = main.c
+
+if BUILD_CLI
+nft_SOURCES += cli.c
+endif
+
+nft_LDADD = libnftables.la
diff --git a/src/parser_bison.y b/src/parser_bison.y
index 2c59fa784585a..c64c3979eb041 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -105,6 +105,10 @@ static void location_update(struct location *loc, struct location *rhs, int n)
#define symbol_value(loc, str) \
symbol_expr_alloc(loc, SYMBOL_VALUE, current_scope(state), str)
+
+/* Declare those here to avoid compiler warnings */
+void nft_set_debug(int, void *);
+int nft_lex(void *, void *, void *);
%}
/* Declaration section */
--
2.13.1
next reply other threads:[~2017-11-14 20:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-14 20:17 Phil Sutter [this message]
2017-11-16 13:34 ` [nft PATCH] libnftables: Split code into frontend and library Pablo Neira Ayuso
2017-11-16 13:56 ` Pablo Neira Ayuso
2017-11-16 14:11 ` Phil Sutter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171114201710.16419-1-phil@nwl.cc \
--to=phil@nwl.cc \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).