Message ID | 1337253358-5050-1-git-send-email-thomas.petazzoni@free-electrons.com |
---|---|
State | Accepted |
Commit | 878401a9d06e260a0d3d86a92c21aab4a622d2c8 |
Headers | show |
Le Thu, 17 May 2012 13:15:57 +0200, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a écrit : > In kernel >= 3.3, the ext2_fs.h can no longer be imported from > userspace. This has been fixed for internal toolchains by adding a > patch to kernel headers, but this doesn't work with toolchains > generated by Crosstool-NG, or potentially upcoming external > toolchains. > > socat in fact has a test in its configure.in, but the configure was > generated too long ago, and the generated test relies on the > preprocessor result and not the compiler result (but warns that in the > future, the compiler result will be used instead of the preprocessor > result). > > So, by running autoconf on this package, we fix the problem: it > properly checks whether ext2_fs is usable or not, and acts > accordingly. Of course, it means that with recent versions of the > kernel, ext2-specific features of socat are unavailable, and we'll > have to wait for the socat developers to adapt their code so that they > use the e2fsprogs headers. Forgot to say so in the commit log, but this fixes: http://autobuild.buildroot.org/results/fb8f118d0051d01f41cdc50a90df05f9d648e433/build-end.log Thomas
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
Thomas> In kernel >= 3.3, the ext2_fs.h can no longer be imported from
Thomas> userspace. This has been fixed for internal toolchains by adding a
Thomas> patch to kernel headers, but this doesn't work with toolchains
Thomas> generated by Crosstool-NG, or potentially upcoming external
Thomas> toolchains.
Thomas> socat in fact has a test in its configure.in, but the configure was
Thomas> generated too long ago, and the generated test relies on the
Thomas> preprocessor result and not the compiler result (but warns that in the
Thomas> future, the compiler result will be used instead of the preprocessor
Thomas> result).
Thomas> So, by running autoconf on this package, we fix the problem: it
Thomas> properly checks whether ext2_fs is usable or not, and acts
Thomas> accordingly. Of course, it means that with recent versions of the
Thomas> kernel, ext2-specific features of socat are unavailable, and we'll
Thomas> have to wait for the socat developers to adapt their code so that they
Thomas> use the e2fsprogs headers.
Thomas> We also bump the version, since a new minor version fixing a security
Thomas> problem has been released.
Committed both, thanks.
diff --git a/package/socat/socat.mk b/package/socat/socat.mk index 5f7feac..bd435cf 100644 --- a/package/socat/socat.mk +++ b/package/socat/socat.mk @@ -4,7 +4,7 @@ # ############################################################# -SOCAT_VERSION = 2.0.0-b4 +SOCAT_VERSION = 2.0.0-b5 SOCAT_SOURCE = socat-$(SOCAT_VERSION).tar.bz2 SOCAT_SITE = http://www.dest-unreach.org/socat/download/ SOCAT_CONF_ENV = sc_cv_termios_ispeed=no \ @@ -12,4 +12,17 @@ SOCAT_CONF_ENV = sc_cv_termios_ispeed=no \ sc_cv_sys_tabdly_shift=11 \ sc_cv_sys_csize_shift=4 +# We need to run autoconf to regenerate the configure script, in order +# to ensure that the test checking linux/ext2_fs.h works +# properly. However, the package only uses autoconf and not automake, +# so we can't use the normal autoreconf logic. + +SOCAT_DEPENDENCIES = host-autoconf + +define SOCAT_RUN_AUTOCONF + (cd $(@D); $(HOST_DIR)/usr/bin/autoconf) +endef + +SOCAT_PRE_CONFIGURE_HOOKS += SOCAT_RUN_AUTOCONF + $(eval $(call AUTOTARGETS))
In kernel >= 3.3, the ext2_fs.h can no longer be imported from userspace. This has been fixed for internal toolchains by adding a patch to kernel headers, but this doesn't work with toolchains generated by Crosstool-NG, or potentially upcoming external toolchains. socat in fact has a test in its configure.in, but the configure was generated too long ago, and the generated test relies on the preprocessor result and not the compiler result (but warns that in the future, the compiler result will be used instead of the preprocessor result). So, by running autoconf on this package, we fix the problem: it properly checks whether ext2_fs is usable or not, and acts accordingly. Of course, it means that with recent versions of the kernel, ext2-specific features of socat are unavailable, and we'll have to wait for the socat developers to adapt their code so that they use the e2fsprogs headers. We also bump the version, since a new minor version fixing a security problem has been released. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- package/socat/socat.mk | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)