Skip to contentSkip to conversation

pv: fix build failures when building under a path containing 'yes'

PATCH New Peter Korsgaard 3 participants 4 messages Aug 20, 2018 – Aug 29, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pv: fix build failures when building under a path containing 'yes'

Depending on the configuration, the cpp output may contain the string 'yes' in a comment if built under a path containing 'yes', confusing the _AIX test:

${CROSS}-cpp conftest.h
\# 1 "conftest.h"
\# 1 "<built-in>"
\# 1 "<command-line>"
\# 31 "<command-line>"
\# 1 "/home/peko/source/buildroot/output-yes/host/x86_64-buildroot-linux-gnu/sysroot/usr/include/stdc-predef.h" \# 32 "<command-line>" 2
\# 1 "conftest.txt"

If misdetected, the configure script adds -lc128 to LIBS, causing the AC_CHECKS_FUNCS check for stat64 to fail, which in turn causes compilation errors about redefinition of symbols:

In file included from ./src/include/pv-internal.h:9:0,

                 from src/pv/file.c:5:
./src/include/config.h:76:18: error: redefinition of 'struct stat'
  #  define stat64 stat
                   ^

Fix it by only matching on 'yes' on a line by itself.

As pv doesn't cleanly autoreconf (it doesn't use automake and configure.in is located in subdir), instead directly patch configure.

---
 .../pv/0001-configure.in-tighten-AIX-test.patch    | 57 ++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 package/pv/0001-configure.in-tighten-AIX-test.patch
package/pv/0001-configure.in-tighten-AIX-test.patch new file +57 -0
new file mode 100644
index 0000000000..2e0d2af247
@@ -0,0 +1,57 @@
+From cd7605723eb8e6d8231644f1cf62f1e80badf074 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <[email protected]>
+Date: Mon, 20 Aug 2018 15:57:22 +0200
+Subject: [PATCH] configure.in: tighten AIX test
+
+Depending on the configuration, the cpp output may contain the string 'yes'
+in a comment if built under a path containing 'yes', confusing the _AIX
+test:
+
+${CROSS}-cpp conftest.h
+\# 1 "conftest.h"
+\# 1 "<built-in>"
+\# 1 "<command-line>"
+\# 31 "<command-line>"
+\# 1 "/home/peko/source/buildroot/output-yes/host/x86_64-buildroot-linux-gnu/sysroot/usr/include/stdc-predef.h" 1 3 4
+\# 32 "<command-line>" 2
+\# 1 "conftest.txt"
+
+Fix it by only matching on 'yes' on a line by itself.
+
+Upstream-status: submitted to author
+Signed-off-by: Peter Korsgaard <[email protected]>
+---
+
+ autoconf/configure.in | 2 +-
+ configure             | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/autoconf/configure.in b/autoconf/configure.in
+index bd45004..487c42b 100644
+--- a/autoconf/configure.in
++++ b/autoconf/configure.in
+@@ -86,7 +86,7 @@ AC_PROG_MAKE_SET
+ 
+ dnl AIX needs -lc128
+ dnl
+-AC_EGREP_CPP([yes], [#ifdef _AIX
++AC_EGREP_CPP([^yes$], [#ifdef _AIX
+ yes
+ #endif
+ ], [LIBS="$LIBS -lc128"])
+diff --git a/configure b/configure
+index 7c11be0..59267b9 100755
+--- a/configure
++++ b/configure
+@@ -3377,7 +3377,7 @@ yes
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "yes" >/dev/null 2>&1; then
++  $EGREP "^yes$" >/dev/null 2>&1; then
+   LIBS="$LIBS -lc128"
+ fi
+ rm -f conftest*
+-- 
+2.11.0
+
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/1 pv: fix build failures when building under a path containing 'yes'

Peter, All,

On 2018-08-20 16:22 +0200, Peter Korsgaard spake thusly:

Quoted 3 lines

Depending on the configuration, the cpp output may contain the string 'yes' in a comment if built under a path containing 'yes', confusing the _AIX test:

[--SNIP--]

Quoted 6 lines

Fix it by only matching on 'yes' on a line by itself.

As pv doesn't cleanly autoreconf (it doesn't use automake and configure.in is located in subdir), instead directly patch configure.

A similar issue was reported recently on IRC, when the build directory $(O) contains an '@', which makes some package (gcc, IIRC?) fail to build.

I'll run a test here to find exactly what package fails, and I'll submit a patch refusing '@' in the build directory path.

Regards,
Yann E. MORIN.

Quoted 75 lines
---
 .../pv/0001-configure.in-tighten-AIX-test.patch    | 57 ++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 package/pv/0001-configure.in-tighten-AIX-test.patch
package/pv/0001-configure.in-tighten-AIX-test.patch new file +57 -0
new file mode 100644
index 0000000000..2e0d2af247
@@ -0,0 +1,57 @@
+From cd7605723eb8e6d8231644f1cf62f1e80badf074 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <[email protected]>
+Date: Mon, 20 Aug 2018 15:57:22 +0200
+Subject: [PATCH] configure.in: tighten AIX test
+
+Depending on the configuration, the cpp output may contain the string 'yes'
+in a comment if built under a path containing 'yes', confusing the _AIX
+test:
+
+${CROSS}-cpp conftest.h
+\# 1 "conftest.h"
+\# 1 "<built-in>"
+\# 1 "<command-line>"
+\# 31 "<command-line>"
+\# 1 "/home/peko/source/buildroot/output-yes/host/x86_64-buildroot-linux-gnu/sysroot/usr/include/stdc-predef.h" 1 3 4
+\# 32 "<command-line>" 2
+\# 1 "conftest.txt"
+
+Fix it by only matching on 'yes' on a line by itself.
+
+Upstream-status: submitted to author
+Signed-off-by: Peter Korsgaard <[email protected]>
+---
+
+ autoconf/configure.in | 2 +-
+ configure             | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/autoconf/configure.in b/autoconf/configure.in
+index bd45004..487c42b 100644
+--- a/autoconf/configure.in
++++ b/autoconf/configure.in
+@@ -86,7 +86,7 @@ AC_PROG_MAKE_SET
+ 
+ dnl AIX needs -lc128
+ dnl
+-AC_EGREP_CPP([yes], [#ifdef _AIX
++AC_EGREP_CPP([^yes$], [#ifdef _AIX
+ yes
+ #endif
+ ], [LIBS="$LIBS -lc128"])
+diff --git a/configure b/configure
+index 7c11be0..59267b9 100755
+--- a/configure
++++ b/configure
+@@ -3377,7 +3377,7 @@ yes
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "yes" >/dev/null 2>&1; then
++  $EGREP "^yes$" >/dev/null 2>&1; then
+   LIBS="$LIBS -lc128"
+ fi
+ rm -f conftest*
+-- 
+2.11.0
+
Signature · 6 lines
2.11.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH 1/1 pv: fix build failures when building under a path containing 'yes'

In reply to Peter Korsgaard

Hello,

Quoted 24 lines · Peter Korsgaard

Depending on the configuration, the cpp output may contain the string 'yes' in a comment if built under a path containing 'yes', confusing the _AIX test:

${CROSS}-cpp conftest.h
\# 1 "conftest.h"
\# 1 "<built-in>"
\# 1 "<command-line>"
\# 31 "<command-line>"
\# 1 "/home/peko/source/buildroot/output-yes/host/x86_64-buildroot-linux-gnu/sysroot/usr/include/stdc-predef.h" \# 32 "<command-line>" 2
\# 1 "conftest.txt"

If misdetected, the configure script adds -lc128 to LIBS, causing the AC_CHECKS_FUNCS check for stat64 to fail, which in turn causes compilation errors about redefinition of symbols:

In file included from ./src/include/pv-internal.h:9:0,

                 from src/pv/file.c:5:
./src/include/config.h:76:18: error: redefinition of 'struct stat'
  #  define stat64 stat
                   ^

Fix it by only matching on 'yes' on a line by itself.

Quoted 8 lines

As pv doesn't cleanly autoreconf (it doesn't use automake and configure.in is located in subdir), instead directly patch configure.

---
 .../pv/0001-configure.in-tighten-AIX-test.patch    | 57 ++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 package/pv/0001-configure.in-tighten-AIX-test.patch

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#3 lore raw

PATCH 1/1 pv: fix build failures when building under a path containing 'yes'

In reply to Peter Korsgaard
Quoted 24 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Peter" == Peter Korsgaard <[email protected]> writes:

Depending on the configuration, the cpp output may contain the string 'yes' in a comment if built under a path containing 'yes', confusing the _AIX test:

${CROSS}-cpp conftest.h
\# 1 "conftest.h"
\# 1 "<built-in>"
\# 1 "<command-line>"
\# 31 "<command-line>"
\# 1 "/home/peko/source/buildroot/output-yes/host/x86_64-buildroot-linux-gnu/sysroot/usr/include/stdc-predef.h" \# 32 "<command-line>" 2
\# 1 "conftest.txt"

If misdetected, the configure script adds -lc128 to LIBS, causing the AC_CHECKS_FUNCS check for stat64 to fail, which in turn causes compilation errors about redefinition of symbols:

In file included from ./src/include/pv-internal.h:9:0,

                 from src/pv/file.c:5:
./src/include/config.h:76:18: error: redefinition of 'struct stat'
  #  define stat64 stat
                   ^
Quoted 6 lines

Fix it by only matching on 'yes' on a line by itself.

As pv doesn't cleanly autoreconf (it doesn't use automake and configure.in is located in subdir), instead directly patch configure.

Committed to 2018.02.x and 2018.05.x, thanks.

Signature · 1 line
Bye, Peter Korsgaard