Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Apr 2017 20:12:08 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD Ports <freebsd-ports@freebsd.org>
Cc:        Alexander Kabaev <kabaev@gmail.com>
Subject:   Re: lang/gcc6-aux for head beyond __nonnull related issues: vm_ooffset_t and vm_pindex_t related changes (and more)
Message-ID:  <910E4F4B-B4BC-434E-8B2A-E9860D5039F6@dsl-only.net>
In-Reply-To: <86A361FC-8C3A-48A0-9C5D-7C1DA166D176@dsl-only.net>
References:  <86A361FC-8C3A-48A0-9C5D-7C1DA166D176@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-Apr-14, at 6:54 PM, Mark Millard <markmi at dsl-only.net> wrote:

> Alexander Kabaev kabaev at gmail.com on Sat Apr 15 00:20:40 UTC 2017
> wrote:
> . . .
>=20
>> it was suggested multiple times that the whole fixinc step is
>> ultimately harmful and serves no useful purpose and probably should =
be
>> disabled in built packages outright. Is there a reason not to do it?
>> Even Redhat appears to do the slimming in their rpms:
>>=20
>> mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
>> mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
>> for h in `find $FULLPATH/include -name \*.h`; do
>>  if grep -q 'It has been auto-edited by fixincludes from' $h; then
>>    rh=3D`grep -A2 'It has been auto-edited by fixincludes from' $h |
>> tail -1 | sed 's|^.*"\(.*\)".*$|\1|'` diff -up $rh $h || :
>>    rm -f $h
>>  fi
>> done
>=20
> I'll note that:
>=20
> http://www.linuxfromscratch.org/lfs/view/7.1/chapter06/gcc.html
>=20
> reports as one of its steps (quote):
>=20
> The fixincludes script is known to occasionally erroneously attempt
> to "fix" the system headers installed so far. As the headers up to
> this point are known to not require fixing, issue the following
> command to prevent the fixincludes script from running:
>=20
> sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
>=20
> (End quote)
>=20
> So seems that disabling fixinc.sh's use is fairly common when
> the headers are known to "not require fixing" (i.e., are known
> to already be gcc compliant).

Hmm. Looking around I found a more overall script. For the
context that I tried it in the command was:

# =
/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/libexec/gcc/aarc=
h64-aux-freebsd12.0/6.3.1/install-tools/mkheaders =
/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap

In other words:

bootstrap/libexec/gcc/*/*/install-tools/mkheaders

is the script and looking on the web I find other references
to using such as well. So I doubt that is all that special
to gcc6-aux, although some of the content of the example
might well be.

It in turn uses fixinc.sh script(s).

The mkheaders core loop looked like:

for ml in `cat ${itoolsdatadir}/fixinc_list`; do
  sysroot_headers_suffix=3D`echo ${ml} | sed -e 's/;.*$//'`
  multi_dir=3D`echo ${ml} | sed -e 's/^[^;]*;//'`
  subincdir=3D${incdir}${multi_dir}
  . ${itoolsdatadir}/mkheaders.conf
  if [ x${STMP_FIXINC} !=3D x ] ; then
        TARGET_MACHINE=3D"${target}" target_canonical=3D"${target}" \
            MACRO_LIST=3D"${itoolsdatadir}/macro_list" \
            /bin/sh ./fixinc.sh ${subincdir} \
            ${isysroot}${SYSTEM_HEADER_DIR} ${OTHER_FIXINCLUDES_DIRS}
        rm -f ${subincdir}/syslimits.h
        if [ -f ${subincdir}/limits.h ]; then
          mv ${subincdir}/limits.h ${subincdir}/syslimits.h
        else
          cp ${itoolsdatadir}/gsyslimits.h ${subincdir}/syslimits.h
        fi
  fi

  cp ${itoolsdatadir}/include${multi_dir}/limits.h ${subincdir}
done

This code provides context to fixinc.sh and deals with limits.h
as well. So:

http://www.linuxfromscratch.org/lfs/view/7.1/chapter06/gcc.html

was not turning everything off.

=3D=3D=3D
Mark Millard
markmi at dsl-only.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?910E4F4B-B4BC-434E-8B2A-E9860D5039F6>