* [PATCH 0/3] nfs-utils build fixes
@ 2014-12-02 12:39 David Härdeman
2014-12-02 12:39 ` [PATCH 1/3] nfs-utils: fix gssd build flags David Härdeman
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: David Härdeman @ 2014-12-02 12:39 UTC (permalink / raw)
To: linux-nfs
The following series fixes some of the snafus I encountered when
trying to build nfs-utils for OpenELEC (meaning: lots of static
libraries, cross compile, separate source and build dirs).
Only the first patch is a real patch, the other two are more
a basis for discussion since I'm not sure about the best approach...
---
David Härdeman (3):
nfs-utils: fix gssd build flags
[RFC] nfs-utils: change internal rpcgen to support separate builddir
[RFC] nfs-utils: include headers from srcdir
configure.ac | 3 +++
tools/rpcgen/rpc_main.c | 7 ++++---
utils/gssd/Makefile.am | 4 ++--
3 files changed, 9 insertions(+), 5 deletions(-)
--
David Härdeman
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/3] nfs-utils: fix gssd build flags 2014-12-02 12:39 [PATCH 0/3] nfs-utils build fixes David Härdeman @ 2014-12-02 12:39 ` David Härdeman 2014-12-08 17:33 ` Steve Dickson 2014-12-02 12:39 ` [PATCH 2/3] [RFC] nfs-utils: change internal rpcgen to support separate builddir David Härdeman 2014-12-02 12:40 ` [PATCH 3/3] [RFC] nfs-utils: include headers from srcdir David Härdeman 2 siblings, 1 reply; 8+ messages in thread From: David Härdeman @ 2014-12-02 12:39 UTC (permalink / raw) To: linux-nfs The tirpc variable is another library to add, not additional flags. I'm guessing the reason this hasn't caused problems is that it only shows up with static libraries. Signed-off-by: David Härdeman <david@hardeman.nu> --- utils/gssd/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/gssd/Makefile.am b/utils/gssd/Makefile.am index 9835117..e12a480 100644 --- a/utils/gssd/Makefile.am +++ b/utils/gssd/Makefile.am @@ -46,8 +46,8 @@ gssd_SOURCES = \ write_bytes.h gssd_LDADD = ../../support/nfs/libnfs.a \ - $(RPCSECGSS_LIBS) $(KRBLIBS) $(GSSAPI_LIBS) -gssd_LDFLAGS = $(KRBLDFLAGS) $(LIBTIRPC) + $(RPCSECGSS_LIBS) $(KRBLIBS) $(GSSAPI_LIBS) $(LIBTIRPC) +gssd_LDFLAGS = $(KRBLDFLAGS) gssd_CFLAGS = $(AM_CFLAGS) $(CFLAGS) \ $(RPCSECGSS_CFLAGS) $(KRBCFLAGS) $(GSSAPI_CFLAGS) ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] nfs-utils: fix gssd build flags 2014-12-02 12:39 ` [PATCH 1/3] nfs-utils: fix gssd build flags David Härdeman @ 2014-12-08 17:33 ` Steve Dickson 0 siblings, 0 replies; 8+ messages in thread From: Steve Dickson @ 2014-12-08 17:33 UTC (permalink / raw) To: David Härdeman, linux-nfs On 12/02/2014 07:39 AM, David Härdeman wrote: > The tirpc variable is another library to add, not additional flags. > I'm guessing the reason this hasn't caused problems is that it only > shows up with static libraries. > > Signed-off-by: David Härdeman <david@hardeman.nu> Committed... steved. > --- > utils/gssd/Makefile.am | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/utils/gssd/Makefile.am b/utils/gssd/Makefile.am > index 9835117..e12a480 100644 > --- a/utils/gssd/Makefile.am > +++ b/utils/gssd/Makefile.am > @@ -46,8 +46,8 @@ gssd_SOURCES = \ > write_bytes.h > > gssd_LDADD = ../../support/nfs/libnfs.a \ > - $(RPCSECGSS_LIBS) $(KRBLIBS) $(GSSAPI_LIBS) > -gssd_LDFLAGS = $(KRBLDFLAGS) $(LIBTIRPC) > + $(RPCSECGSS_LIBS) $(KRBLIBS) $(GSSAPI_LIBS) $(LIBTIRPC) > +gssd_LDFLAGS = $(KRBLDFLAGS) > > gssd_CFLAGS = $(AM_CFLAGS) $(CFLAGS) \ > $(RPCSECGSS_CFLAGS) $(KRBCFLAGS) $(GSSAPI_CFLAGS) > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] [RFC] nfs-utils: change internal rpcgen to support separate builddir 2014-12-02 12:39 [PATCH 0/3] nfs-utils build fixes David Härdeman 2014-12-02 12:39 ` [PATCH 1/3] nfs-utils: fix gssd build flags David Härdeman @ 2014-12-02 12:39 ` David Härdeman 2014-12-08 17:36 ` Steve Dickson 2014-12-02 12:40 ` [PATCH 3/3] [RFC] nfs-utils: include headers from srcdir David Härdeman 2 siblings, 1 reply; 8+ messages in thread From: David Härdeman @ 2014-12-02 12:39 UTC (permalink / raw) To: linux-nfs rpcgen uses absolute paths (based on the input) when generating the output files, thus breaking builds using a separate build directory. I'm not sure this is the best (or even an acceptable) approach, but it works for me...consider it an RFC :) --- tools/rpcgen/rpc_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/rpcgen/rpc_main.c b/tools/rpcgen/rpc_main.c index 28aa60c..f81da47 100644 --- a/tools/rpcgen/rpc_main.c +++ b/tools/rpcgen/rpc_main.c @@ -44,6 +44,7 @@ static char sccsid[] = "@(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI"; #include <unistd.h> #include <ctype.h> #include <errno.h> +#include <libgen.h> #include "rpc_parse.h" #include "rpc_util.h" #include "rpc_scan.h" @@ -389,7 +390,7 @@ c_output(char *infile, char *define, int extend, char *outfile) open_output(infile, outfilename); add_warning(); if (infile && (include = extendfile(infile, ".h"))) { - f_print(fout, "#include \"%s\"\n", include); + f_print(fout, "#include \"%s\"\n", basename(include)); free(include); /* .h file already contains rpc/rpc.h */ } else @@ -523,7 +524,7 @@ s_output(int argc, char **argv, char *infile, char *define, int extend, open_output(infile, outfilename); add_warning(); if (infile && (include = extendfile(infile, ".h"))) { - f_print(fout, "#include \"%s\"\n", include); + f_print(fout, "#include \"%s\"\n", basename(include)); free(include); } else f_print(fout, "#include <rpc/rpc.h>\n"); @@ -630,7 +631,7 @@ l_output(char *infile, char *define, int extend, char *outfile) if (Cflag) f_print (fout, "#include <memory.h> /* for memset */\n"); if (infile && (include = extendfile(infile, ".h"))) { - f_print(fout, "#include \"%s\"\n", include); + f_print(fout, "#include \"%s\"\n", basename(include)); free(include); } else f_print(fout, "#include <rpc/rpc.h>\n"); ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] [RFC] nfs-utils: change internal rpcgen to support separate builddir 2014-12-02 12:39 ` [PATCH 2/3] [RFC] nfs-utils: change internal rpcgen to support separate builddir David Härdeman @ 2014-12-08 17:36 ` Steve Dickson 0 siblings, 0 replies; 8+ messages in thread From: Steve Dickson @ 2014-12-08 17:36 UTC (permalink / raw) To: David Härdeman, linux-nfs On 12/02/2014 07:39 AM, David Härdeman wrote: > rpcgen uses absolute paths (based on the input) when generating the > output files, thus breaking builds using a separate build directory. > I'm not sure this is the best (or even an acceptable) approach, but > it works for me...consider it an RFC :) I went ahead committed this as well... I didn't realized the internal rpcgen was being used... So if makes life easier for you... so be it! :-) steved. > --- > tools/rpcgen/rpc_main.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/tools/rpcgen/rpc_main.c b/tools/rpcgen/rpc_main.c > index 28aa60c..f81da47 100644 > --- a/tools/rpcgen/rpc_main.c > +++ b/tools/rpcgen/rpc_main.c > @@ -44,6 +44,7 @@ static char sccsid[] = "@(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI"; > #include <unistd.h> > #include <ctype.h> > #include <errno.h> > +#include <libgen.h> > #include "rpc_parse.h" > #include "rpc_util.h" > #include "rpc_scan.h" > @@ -389,7 +390,7 @@ c_output(char *infile, char *define, int extend, char *outfile) > open_output(infile, outfilename); > add_warning(); > if (infile && (include = extendfile(infile, ".h"))) { > - f_print(fout, "#include \"%s\"\n", include); > + f_print(fout, "#include \"%s\"\n", basename(include)); > free(include); > /* .h file already contains rpc/rpc.h */ > } else > @@ -523,7 +524,7 @@ s_output(int argc, char **argv, char *infile, char *define, int extend, > open_output(infile, outfilename); > add_warning(); > if (infile && (include = extendfile(infile, ".h"))) { > - f_print(fout, "#include \"%s\"\n", include); > + f_print(fout, "#include \"%s\"\n", basename(include)); > free(include); > } else > f_print(fout, "#include <rpc/rpc.h>\n"); > @@ -630,7 +631,7 @@ l_output(char *infile, char *define, int extend, char *outfile) > if (Cflag) > f_print (fout, "#include <memory.h> /* for memset */\n"); > if (infile && (include = extendfile(infile, ".h"))) { > - f_print(fout, "#include \"%s\"\n", include); > + f_print(fout, "#include \"%s\"\n", basename(include)); > free(include); > } else > f_print(fout, "#include <rpc/rpc.h>\n"); > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] [RFC] nfs-utils: include headers from srcdir 2014-12-02 12:39 [PATCH 0/3] nfs-utils build fixes David Härdeman 2014-12-02 12:39 ` [PATCH 1/3] nfs-utils: fix gssd build flags David Härdeman 2014-12-02 12:39 ` [PATCH 2/3] [RFC] nfs-utils: change internal rpcgen to support separate builddir David Härdeman @ 2014-12-02 12:40 ` David Härdeman 2014-12-08 18:04 ` Steve Dickson 2 siblings, 1 reply; 8+ messages in thread From: David Härdeman @ 2014-12-02 12:40 UTC (permalink / raw) To: linux-nfs Some of the headers in ./support/include get generated as part of the build process (and end up in the build dir hierarchy) and some are not (so they stay in the srcdir hierarchy). That means the build breaks when using a separate build dir. I'm not sure what the best way to make sure that -I$(top_srcdir)/support/include is defined everywhere is. Consider this a basis for discussion rather than a real patch. Someone with more autoconf-fu can surely come up with a better solution. --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index e3af723..5d0ab2b 100644 --- a/configure.ac +++ b/configure.ac @@ -479,6 +479,9 @@ my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe" AC_SUBST([AM_CFLAGS], ["$my_am_cflags"]) +AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/support/include" +AC_SUBST([AM_CPPFLAGS]) + # Make sure that $ACLOCAL_FLAGS are used during a rebuild AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"]) ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] [RFC] nfs-utils: include headers from srcdir 2014-12-02 12:40 ` [PATCH 3/3] [RFC] nfs-utils: include headers from srcdir David Härdeman @ 2014-12-08 18:04 ` Steve Dickson 2014-12-08 20:45 ` David Härdeman 0 siblings, 1 reply; 8+ messages in thread From: Steve Dickson @ 2014-12-08 18:04 UTC (permalink / raw) To: David Härdeman, linux-nfs On 12/02/2014 07:40 AM, David Härdeman wrote: > Some of the headers in ./support/include get generated as part of the > build process (and end up in the build dir hierarchy) and some are > not (so they stay in the srcdir hierarchy). > > That means the build breaks when using a separate build dir. I'm not sure > what the best way to make sure that -I$(top_srcdir)/support/include is > defined everywhere is. Consider this a basis for discussion rather than > a real patch. Someone with more autoconf-fu can surely come up with a better > solution. This one I didn't commit because it caused -I../../support/include to defined twice. That path gets define ing Makefile.in file in the DEFAULT_INCLUDES macro. steved. > --- > configure.ac | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/configure.ac b/configure.ac > index e3af723..5d0ab2b 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -479,6 +479,9 @@ my_am_cflags="-Wall -Wextra -Wstrict-prototypes $ARCHFLAGS -pipe" > > AC_SUBST([AM_CFLAGS], ["$my_am_cflags"]) > > +AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/support/include" > +AC_SUBST([AM_CPPFLAGS]) > + > # Make sure that $ACLOCAL_FLAGS are used during a rebuild > AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"]) > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] [RFC] nfs-utils: include headers from srcdir 2014-12-08 18:04 ` Steve Dickson @ 2014-12-08 20:45 ` David Härdeman 0 siblings, 0 replies; 8+ messages in thread From: David Härdeman @ 2014-12-08 20:45 UTC (permalink / raw) To: Steve Dickson; +Cc: linux-nfs On Mon, Dec 08, 2014 at 01:04:28PM -0500, Steve Dickson wrote: >On 12/02/2014 07:40 AM, David Härdeman wrote: >> Some of the headers in ./support/include get generated as part of the >> build process (and end up in the build dir hierarchy) and some are >> not (so they stay in the srcdir hierarchy). >> >> That means the build breaks when using a separate build dir. I'm not sure >> what the best way to make sure that -I$(top_srcdir)/support/include is >> defined everywhere is. Consider this a basis for discussion rather than >> a real patch. Someone with more autoconf-fu can surely come up with a better >> solution. > >This one I didn't commit because it caused -I../../support/include to >defined twice. That path gets define ing Makefile.in file in the >DEFAULT_INCLUDES macro. But only if $(top_srcdir) == $(top_builddir) So, for example, if you do: cd nfs-utils mkdir tmp cd tmp ../configure make Then you'd have -I../../support/include and -I../../../support/include? I think this is in line with: http://www.gnu.org/software/automake/manual/html_node/Program-Variables.html See the section on AM_CPPFLAGS... An example from Gutenprint2: AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS) Though a more "complete" fix might be to either have a common include file, or a non-recursive make :) -- David Härdeman ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-12-08 20:45 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-12-02 12:39 [PATCH 0/3] nfs-utils build fixes David Härdeman 2014-12-02 12:39 ` [PATCH 1/3] nfs-utils: fix gssd build flags David Härdeman 2014-12-08 17:33 ` Steve Dickson 2014-12-02 12:39 ` [PATCH 2/3] [RFC] nfs-utils: change internal rpcgen to support separate builddir David Härdeman 2014-12-08 17:36 ` Steve Dickson 2014-12-02 12:40 ` [PATCH 3/3] [RFC] nfs-utils: include headers from srcdir David Härdeman 2014-12-08 18:04 ` Steve Dickson 2014-12-08 20:45 ` David Härdeman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox