[Clfs-support] Diffutils 3.6 Fails to Build for PowerPC in Chapter 6

William Harrington kb0iic at berzerkula.org
Mon Nov 6 14:38:57 PST 2017


On Mon, November 6, 2017 20:09, Martin Ward wrote:
> On 06/11/17 18:41, Gunnersky2002 at gunnerhooper.tk wrote:
>> I'm currently building CLFS Systemd for PowerPC 32 Bit on my x86_64
>> machine with Linux from Scratch installed. Everything succeeded until
>> I attempted to build Diffutils 3.6 in Chapter 6, which gave me this
>> error:
>>
>> In file included from ./getopt.h:85:0,
>>                  from xstrtol.h:22,
>>                  from xstrtol.c:31:
>> ./config.h:2070:25: warning: 'struct rpl_option' declared inside
>> parameter list will not be visible outside of this definition or
>> declaration
>>  #define __GETOPT_PREFIX rpl_
>>                          ^
>> ./getopt-pfx-core.h:38:44: note: in expansion of macro '__GETOPT_PREFIX'
>>  #  define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
>>                                             ^~~~~~~~~~~~~~~
>>   CC       xstrtol-error.o
>> In file included from ./getopt.h:85:0,
>>                  from xstrtol.h:22,
>>                  from xstrtol-error.c:20:
>> ./config.h:2070:25: warning: 'struct rpl_option' declared inside
>> parameter list will not be visible outside of this definition or
>> declaration
>>  #define __GETOPT_PREFIX rpl_
>>                          ^
>> ./getopt-pfx-core.h:38:44: note: in expansion of macro '__GETOPT_PREFIX'
>>  #  define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
>>                                             ^~~~~~~~~~~~~~~
>> In file included from ./getopt.h:85:0,
>>                  from xstrtol.h:22,
>>                  from xstrtol.c:31,
>>                  from xstrtoul.c:6:
>> ./config.h:2070:25: warning: 'struct rpl_option' declared inside
>> parameter list will not be visible outside of this definition or
>> declaration
>>  #define __GETOPT_PREFIX rpl_
>>                          ^
>> ./getopt-pfx-core.h:38:44: note: in expansion of macro '__GETOPT_PREFIX'
>>  #  define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
>>                                             ^~~~~~~~~~~~~~~
>> ./config.h:2070:25: warning: 'struct rpl_option' declared inside
>> parameter list will not be visible outside of this definition or
>> declaration
>>  #define __GETOPT_PREFIX rpl_
>>                          ^
>> ./getopt-pfx-core.h:38:44: note: in expansion of macro '__GETOPT_PREFIX'
>>  #  define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
>>                                             ^~~~~~~~~~~~~~~
>> xstrtol-error.c: In function 'xstrtol_error':
>> xstrtol-error.c:84:26: error: invalid use of undefined type 'struct
>> rpl_option'
>>      option = long_options[opt_idx].name;
>>                           ^
>> xstrtol-error.c:84:26: error: dereferencing pointer to incomplete type
>> 'const struct rpl_option'
>> In file included from ./getopt.h:85:0,
>>                  from xstrtol.h:22,
>>                  from xstrtol-error.c:20:
>> xstrtol-error.c: At top level:
>> ./config.h:2070:25: warning: 'struct rpl_option' declared inside
>> parameter list will not be visible outside of this definition or
>> declaration
>>  #define __GETOPT_PREFIX rpl_
>>                          ^
>> ./getopt-pfx-core.h:38:44: note: in expansion of macro '__GETOPT_PREFIX'
>>  #  define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
>>                                             ^~~~~~~~~~~~~~~
>> xstrtol-error.c:92:1: error: conflicting types for 'xstrtol_fatal'
>>  xstrtol_fatal (enum strtol_error err,
>>  ^~~~~~~~~~~~~
>> In file included from xstrtol-error.c:20:0:
>> xstrtol.h:69:16: note: previous declaration of 'xstrtol_fatal' was here
>>  _Noreturn void xstrtol_fatal (enum strtol_error,
>>                 ^~~~~~~~~~~~~
>> xstrtol-error.c: In function 'xstrtol_fatal':
>> xstrtol-error.c:96:35: warning: passing argument 4 of 'xstrtol_error'
>> from incompatible pointer type [-Wincompatible-pointer-types]
>>    xstrtol_error (err, opt_idx, c, long_options, arg, exit_failure);
>>                                    ^~~~~~~~~~~~
>> xstrtol-error.c:47:1: note: expected 'const struct rpl_option *' but
>> argument is of type 'const struct rpl_option *'
>>  xstrtol_error (enum strtol_error err,
>>  ^~~~~~~~~~~~~
>> make[2]: *** [Makefile:1822: xstrtol-error.o] Error 1
>> make[2]: *** Waiting for unfinished jobs....
>> make[2]: Leaving directory '/mnt/clfs/sources/diffutils-3.6/lib'
>> make[1]: *** [Makefile:1577: all] Error 2
>> make[1]: Leaving directory '/mnt/clfs/sources/diffutils-3.6/lib'
>> make: *** [Makefile:1337: all-recursive] Error 1
>>
>> I'm building CLFS on my x86_64 Linux from Scratch 20170713-systemd
>> installation. The book I'm using for CLFS is GIT-20170803-PowerPC. I
>> decided to build Linux Headers 4.13.11, Binutils 2.29.1, Glibc 2.26,
>> and GCC 7.2.0 for the cross tools.
>>
>> Any help will be appreciated.
>>
>> Thanks.
>> _______________________________________________
>> Clfs-support mailing list
>> Clfs-support at lists.clfs.org
>> http://lists.clfs.org/listinfo.cgi/clfs-support-clfs.org
>>
> HI
>
> In building diffutils-3.6 x86-> x86_64 pure
>
> i had to add gl_cv_func_getopt_gnu=yes to the configure command to get
> it to compile correctly
>
>
> Martin

Yes, that is a better way.

Gunnersky2002, review the reason for this:
https://patchwork.ozlabs.org/patch/809145/

Sincerely,

William Harrington




More information about the Clfs-support mailing list