bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gnulib and pspdev


From: Jim Meyering
Subject: Re: Gnulib and pspdev
Date: Sun, 22 Mar 2009 09:35:35 +0100

Sylvain Beucler wrote:
> I'm working on a cross-build of GNU FreeDink to make it run on Sony
> PlayStation Portable.  The build is based on a slightly modified gcc
> cross-compiler for mipsel, and a minimal libc on top off of newlib
> (ftp://sources.redhat.com/pub/newlib/) - check 'psptoolchain' and
> 'pspsdk' at
> http://svn.ps2dev.org/listing.php?repname=psp&path=%2Ftrunk%2F .
>
> (My notes to reproduce the compilation environment can be found at:
> http://git.savannah.gnu.org/cgit/freedink.git/tree/doc/psp.txt )
>
> The build now runs fine but I had to make a few slight changes in
> gnulib, some I think are bugs, some others may not :)
>
> Most of the time I don't use the modules directly, but they are pulled
> as dependencies by gnulib-tool.
>
> Can you tell me general guidelines to properly deal with these
> compilation errors? Or is pspdev out of the scope of gnulib?
>
>
> - using pathconf when HAVE_PATHCONF isn't defined:
>
> This simple patch avoids link-time error about missing
> pathconf. PATH_MAX falls back to MAXPATHLEN (below in the file),
> defined to 1024 in pspdev.
>
> diff --git a/lib/pathmax.h b/lib/pathmax.h
> index 6941e45..34ad3ab 100644
> --- a/lib/pathmax.h
> +++ b/lib/pathmax.h
> @@ -27,9 +27,11 @@
>  # endif
>
>  # if !defined PATH_MAX && defined _PC_PATH_MAX
> +# if defined HAVE_PATHCONF
>  #  define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \
>                   : pathconf ("/", _PC_PATH_MAX))
>  # endif
> +# endif
>
>  /* Don't include sys/param.h if it already has been.  */
>  # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN

Hi Sylvain,

Thanks for the report.
How about the following?
I'll push that tomorrow, along with a ChangeLog entry.

>From 5dbda863b54b47a97ea84c18ecc1c34244683723 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 22 Mar 2009 09:30:44 +0100
Subject: [PATCH] pathmax: PATH_MAX: use pathconf only when available

* lib/pathmax.h (PATH_MAX): Select the pathconf-using definition
only if HAVE_PATHCONF is defined.  Patch by Sylvain Beucler.
* m4/pathmax.m4 (gl_PATHMAX): Check for pathconf.
This avoids a link failure in a PSP cross-compilation environment
described in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/17048
---
 lib/pathmax.h |    4 ++--
 m4/pathmax.m4 |    3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/pathmax.h b/lib/pathmax.h
index 6941e45..f18d760 100644
--- a/lib/pathmax.h
+++ b/lib/pathmax.h
@@ -1,5 +1,5 @@
 /* Define PATH_MAX somehow.  Requires sys/types.h.
-   Copyright (C) 1992, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009 Free Software Foundation, 
Inc.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 #  define _POSIX_PATH_MAX 256
 # endif

-# if !defined PATH_MAX && defined _PC_PATH_MAX
+# if !defined PATH_MAX && defined _PC_PATH_MAX && defined HAVE_PATHCONF
 #  define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \
                    : pathconf ("/", _PC_PATH_MAX))
 # endif
diff --git a/m4/pathmax.m4 b/m4/pathmax.m4
index e88fdb4..4651801 100644
--- a/m4/pathmax.m4
+++ b/m4/pathmax.m4
@@ -1,4 +1,4 @@
-# pathmax.m4 serial 7
+# pathmax.m4 serial 8
 dnl Copyright (C) 2002, 2003, 2005, 2006, 2009 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -7,5 +7,6 @@ dnl with or without modifications, as long as this notice is 
preserved.
 AC_DEFUN([gl_PATHMAX],
 [
   dnl Prerequisites of lib/pathmax.h.
+  AC_CHECK_FUNCS_ONCE([pathconf])
   AC_CHECK_HEADERS_ONCE([sys/param.h])
 ])
--
1.6.2.rc1.285.gc5f54




reply via email to

[Prev in Thread] Current Thread [Next in Thread]