[PATCH] fixincludes/Makefile for Interix Rev 3
Reformulated as per your suggestion, and retested. OK to commit? --Douglas Rupp 2011-06-07 Douglas B Rupp r...@gnat.com * fixincludes/configure.ac (AC_USE_SYSTEM_EXTENSIONS): Add. * fixincludes/configure: Regenerate. * fixincludes/config.h.in: Regenerate. --- gcc.orig/fixincludes/configure.ac 2011-04-06 17:01:09.0 -0700 +++ gcc/fixincludes/configure.ac2011-06-07 22:40:23.0 -0700 @@ -6,6 +6,7 @@ m4_sinclude(../libtool.m4) AC_CANONICAL_SYSTEM AC_PROG_CC +AC_USE_SYSTEM_EXTENSIONS AC_PROG_SED # Figure out what compiler warnings we can enable.
Re: [PATCH] fixincludes/Makefile for Interix Rev 3
On 06/08/2011 08:02 AM, Douglas B Rupp wrote: Reformulated as per your suggestion, and retested. OK to commit? Yes, thanks! Paolo
[PATCH] fixincludes/Makefile for Interix Rev 2
Revised and retested patch attached. OK to commit? --Douglas Rupp 2011-06-06 Douglas B Rupp r...@gnat.com * fixincludes/configure.ac (host_makefile_frag): Use mh-interix. * fixincludes/configure: Regenerate * fixincludes/Makefile.in (FIXINC_CPPFLAGS): New flag macro. (@host_makefile_frag@): New substitution placeholder. (.c.o): Use FIXINC_CPPFLAGS. diff -rupN gcc.orig/fixincludes/configure.ac gcc/fixincludes/configure.ac --- gcc.orig/fixincludes/configure.ac 2011-04-06 17:01:09.0 -0700 +++ gcc/fixincludes/configure.ac2011-06-06 21:31:54.0 -0700 @@ -23,6 +23,16 @@ # Determine the noncanonical target name, for directory use. ACX_NONCANONICAL_TARGET +[host_makefile_frag=/dev/null +if test -d ${srcdir}/../config ; then +case ${host} in + *-interix[3-9]*) +host_makefile_frag=${srcdir}/../config/mh-interix +;; +esac +fi] +AC_SUBST_FILE(host_makefile_frag) + # Specify the local prefix local_prefix= AC_ARG_WITH(local-prefix, diff -rupN gcc.orig/fixincludes/Makefile.in gcc/fixincludes/Makefile.in --- gcc.orig/fixincludes/Makefile.in2011-04-06 17:01:09.0 -0700 +++ gcc/fixincludes/Makefile.in 2011-06-06 21:31:54.0 -0700 @@ -1,6 +1,6 @@ # Makefile for fixincludes. # -# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2009, 2010 +# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2009, 2010, 2011 # Free Software Foundation, Inc. #This file is part of fixincludes. @@ -32,6 +32,11 @@ LDFLAGS = @LDFLAGS@ INCLUDES = -I. -I$(srcdir) -I../include -I$(srcdir)/../include FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES) +FIXINC_CPPFLAGS = + + host specific makefile fragments come in here. +@host_makefile_frag@ +### # Directory where sources are, from where we are. srcdir = @srcdir@ @@ -73,7 +78,7 @@ # Now figure out from those variables how to compile and link. .c.o: - $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $ + $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CPPFLAGS) $(FIXINC_CFLAGS) $ # The only suffixes we want for implicit rules are .c and .o. .SUFFIXES:
Re: [PATCH] fixincludes/Makefile for Interix
On 06/04/11 13:43, Douglas B Rupp wrote: Here's my proposed patch, along the lines you suggested. Hi Doug, Excellent. Just a couple nits: It is more normal and easier to read when you quote the entire shell script fragment, as below (removing unnecessary eval, too): diff -rupN gcc.orig/fixincludes/configure.ac gcc/fixincludes/configure.ac --- gcc.orig/fixincludes/configure.ac 2011-04-06 17:01:09.0 -0700 +++ gcc/fixincludes/configure.ac2011-06-04 13:18:23.0 -0700 @@ -23,6 +23,20 @@ ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual] # Determine the noncanonical target name, for directory use. ACX_NONCANONICAL_TARGET +[host_makefile_frag=/dev/null +if test -d ${srcdir}/../config ; then +case ${host} in + *-interix[3-9]*) +host_makefile_frag=${srcdir}/../config/mh-interix +;; +esac +fi] +AC_SUBST_FILE(host_makefile_frag) + # Specify the local prefix local_prefix= AC_ARG_WITH(local-prefix,
[PATCH] fixincludes/Makefile for Interix
Here's my proposed patch, along the lines you suggested. top_srcdir didn't seem to be set, so I used srcdir instead. Bootstrapped on x86_64-unknown-linux-gnu 2011-06-04 Douglas B Rupp r...@gnat.com * fixincludes/configure.ac (host_makefile_frag): Use mh-interix. * fixincludes/configure: Regenerate * fixincludes/Makefile.in (FIXINC_CPPFLAGS): New flag macro. (@host_makefile_frag@): New substitution placeholder. (.c.o): Use FIXINC_CPPFLAGS. diff -rupN gcc.orig/fixincludes/configure.ac gcc/fixincludes/configure.ac --- gcc.orig/fixincludes/configure.ac 2011-04-06 17:01:09.0 -0700 +++ gcc/fixincludes/configure.ac2011-06-04 13:18:23.0 -0700 @@ -23,6 +23,20 @@ ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual] # Determine the noncanonical target name, for directory use. ACX_NONCANONICAL_TARGET +host_makefile_frag=/dev/null +if test -d ${srcdir}/../config ; then +case ${host} in + *-interix[[3-9]]*) +host_makefile_frag=config/mh-interix +;; +esac +fi + +if test $host_makefile_frag != /dev/null; then + eval host_makefile_frag=${srcdir}/../$host_makefile_frag +fi +AC_SUBST_FILE(host_makefile_frag) + # Specify the local prefix local_prefix= AC_ARG_WITH(local-prefix, diff -rupN gcc.orig/fixincludes/Makefile.in gcc/fixincludes/Makefile.in --- gcc.orig/fixincludes/Makefile.in2011-04-06 17:01:09.0 -0700 +++ gcc/fixincludes/Makefile.in 2011-06-04 00:31:30.0 -0700 @@ -32,6 +32,11 @@ WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANT LDFLAGS = @LDFLAGS@ INCLUDES = -I. -I$(srcdir) -I../include -I$(srcdir)/../include FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES) +FIXINC_CPPFLAGS = + + host specific makefile fragments come in here. +@host_makefile_frag@ +### # Directory where sources are, from where we are. srcdir = @srcdir@ @@ -73,7 +78,7 @@ default : all # Now figure out from those variables how to compile and link. .c.o: - $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $ + $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CPPFLAGS) $(FIXINC_CFLAGS) $ # The only suffixes we want for implicit rules are .c and .o. .SUFFIXES:
How to patch fixincludes/Makefile for Interix?
I've been working on a resurrection patch for Interix, one remaining problem is fixincludes/fixincl.c must be compiled on native Interix with -D_ALL_SOURCE in order to find the getpagesize prototype. This works (taking some liberties with diff...): fixincludes/Makefile.in -FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES) +FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES) -D_ALL_SOURCE Obviously unacceptable in general. Fixincludes ignores a config/mh-interix, so adding FIXINC_CFLAGS += -D_ALL_SOURCE doesn't work. What is the correct solution? Any advice would be greatly appreciated.
Re: How to patch fixincludes/Makefile for Interix?
Hi Doug, On Fri, Jun 3, 2011 at 10:00 AM, Douglas B Rupp r...@gnat.com wrote: I've been working on a resurrection patch for Interix, one remaining problem is fixincludes/fixincl.c must be compiled on native Interix with -D_ALL_SOURCE in order to find the getpagesize prototype. This works (taking some liberties with diff...): fixincludes/Makefile.in -FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES) +FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES) -D_ALL_SOURCE Obviously unacceptable in general. Obviously. Fixincludes ignores a config/mh-interix, so adding FIXINC_CFLAGS += -D_ALL_SOURCE doesn't work. What is the correct solution? Any advice would be greatly appreciated. Without digging into makefile magic, it would seem to me that you'd want to jigger Makefile.in to source $(top_srcdir)/config/mh-$(target) and use FIXINC_CPPFLAGS (this being a pre-processor flag).