All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

* [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

* [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 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

* 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

* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.