CVSROOT:        /cvs
Module name:    ports
Changes by:     rob...@cvs.openbsd.org  2017/09/25 03:16:13

Modified files:
        comms/gnokii   : Makefile 
        comms/gnokii/patches: patch-configure 
        devel/argp-standalone: Makefile 
        devel/atk      : Makefile 
        devel/avrdude  : Makefile 
        devel/gobject-introspection: Makefile 
        devel/json-glib: Makefile 
        devel/libsoup  : Makefile 
        devel/orc      : Makefile 
        devel/orc/patches: patch-configure_ac 
        devel/pango    : Makefile 
        devel/swig     : Makefile 
        graphics/clutter/cogl: Makefile 
        graphics/clutter/core: Makefile 
        graphics/clutter/core/patches: patch-clutter_Makefile_in 
        graphics/gdk-pixbuf2: Makefile 
        graphics/gdk-pixbuf2/patches: patch-configure_ac 
        graphics/libgxps: Makefile 
        multimedia/gstreamer-0.10/core: Makefile 
        net/iplog      : Makefile 
        net/zsync      : Makefile 
        shells/bash    : Makefile 
        x11/dbus       : Makefile 
        x11/gnome/mutter: Makefile 
        x11/gtk+3      : Makefile 
        x11/gtksourceview3: Makefile 
        x11/keybinder  : Makefile 
Added files:
        devel/argp-standalone/patches: patch-acinclude_m4 
        devel/atk/patches: patch-configure_ac 
        devel/avrdude/patches: patch-configure_ac 
        devel/gobject-introspection/patches: patch-configure_ac 
        devel/json-glib/patches: patch-configure_ac 
        devel/libsoup/patches: patch-configure_ac 
        devel/pango/patches: patch-configure_ac 
        devel/swig/patches: patch-CCache_configure 
        graphics/clutter/core/patches: patch-configure_ac 
        graphics/libgxps/patches: patch-configure_ac 
        multimedia/gstreamer-0.10/core/patches: patch-configure_ac 
        net/iplog/patches: patch-configure 
        net/zsync/patches: patch-autotools_ac_c_compile_flags_m4 
        shells/bash/patches: patch-configure 
        x11/dbus/patches: patch-configure_ac 
        x11/gnome/mutter/patches: patch-clutter_configure_ac 
        x11/gtk+3/patches: patch-configure 
        x11/gtksourceview3/patches: patch-configure_ac 
        x11/keybinder/patches: patch-configure 
Removed files:
        graphics/clutter/core/patches: patch-configure 

Log message:
Unbreak autoconf checks with clang by not using nested functions
in the checks.

Someone clearly did not read the autoconf documentation because
using the following functions with a function declaration inside
the body will end up declaring a function inside a function.

- AC_TRY_COMPILE( [], [ int main() { return 0; } ],
- AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])],
- AC_TRY_LINK([], [int main (void) { return 0; }],

Result:

int
main ()
{
int main (void) { return 0; }
;
return 0;
}

nested functions is a gcc extension which is not supported by
clang.

test.c:4:17: error: function definition is not allowed here
int main (void) { return 0; }
^
1 error generated.

This causes tests to fail in the configure scripts resulting in
missing compile and link time flags from the builds.

This resulted in weird behaviour of several software, like gnome
hanging completely due to gtk+3 not being built properly.

This change intrudces the following fixes:

- remove int main() declaration from AC_TRY_COMPILE, AC_LANG_PROGRAM, 
AC_TRY_LINK
as it comes with a declaration already, and people misused them

- change to use AC_LANG_SOURCE when needed in case a complete source block is 
specified

Most of the changes are in configure.(ac|in), however there were some cases
where autoconf is either broken or the build failed because of an autoconf
generated configure script. Everytihng else is switched to autoconf, so
the maintainers can go ahead and upstream these diffs.

There are more to come, we are continously checking the tree for these issues
and in the future the infrastructure will error if such a case is found.

Reply via email to