On Fri, 2011-12-09 at 07:40 -0800, Keith Packard wrote:

> On Fri, 09 Dec 2011 07:45:01 -0500, Gaetan Nadon <[email protected]> wrote:
> 
> >  This function is deprecated because it defines -fno-strict-aliasing
> >  which alters the code generated by the compiler.  If -fno-strict-aliasing
> >  is needed, then it should be added explicitly in the module when
> >  it is updated to use BASE_CFLAGS.
> 
> Does this change the default for this flag? -fno-strict-aliasing is
> needed to preserve compatibility with older code, and I think it should
> probably be on by default until a module owner disables it manually.
> 

The content for CWARNFLAGS will always contain -fno-strict-aliasing.

        # XORG_CWARNFLAGS
        # ---------------
        # Minimum version: 1.2.0
        # Deprecated since: 1.16.0 (Use XORG_COMPILER_FLAGS instead)
        #
        # Defines CWARNFLAGS to enable C compiler warnings.
        #
        # This function is deprecated because it defines -fno-strict-aliasing
        # which alters the code generated by the compiler.  If 
-fno-strict-aliasing
        # is needed, then it should be added explicitly in the module when
        # it is updated to use BASE_CFLAGS.
        #
        AC_DEFUN([XORG_CWARNFLAGS], [
        AC_REQUIRE([XORG_COMPILER_FLAGS])
        AC_REQUIRE([XORG_COMPILER_BRAND])
        CWARNFLAGS="$BASE_CFLAGS"
        if  test "x$GCC" = xyes ; then
            CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing"
        fi
        AC_SUBST(CWARNFLAGS)
        ]) # XORG_CWARNFLAGS


An alternative is now available which separates the warning flags from
-fno-strict-aliasing. In the xserver configuration file, CWARNFLAGS has
been replaced with:

        XORG_TESTSET_CFLAG([NO_STRICT_ALIASING_CFLAG], [-fno-strict-aliasing])
        XSERVER_CFLAGS='$(BASE_CFLAGS) $(NO_STRICT_ALIASING_CFLAG)'
        AC_SUBST([NO_STRICT_ALIASING_CFLAG])


which is equivalent to CWARNFLAGS in terms of -fno-strict-aliasing.

This separation allows (many) modules who do not want
-fno-strict-aliasing to get the warning flags only. I originally thought
that CWARNFLAGS would fall behind in terms of warning flags (past
discussions), but I just noticed Jeremy reimplemented it such that it
will be updated whenever the BASE_CFLAGS variable is updated. It isn't
as deprecated as the comment says.

Thanks for talking a look at this.








Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to