TODO
====

0) Work on gcc should happen upstream as far as possible. I have sent
some patches upstream recently. Let's hope for some progress.

PR 64271, the minimal patch set to bootstrap, extracted from pkgsrc.
Jonathan Wakely is working on the libstdc++ patches involved.
Without acceptance of patches for PR 64271, no other patches
will be accepted upstream.

PR 39570, this bug causes all gfortran run tests to fail. I have developed
the necessary patches and sent them upstream. For gcc50snapshot it means
replacing a short patch by a bunch of complex patches, but they are gcc
conforming and can be reused for other patches as well.

PR 48244, for iso_c_binding support in gfortran. The patches are
there but it is delayed by PR 64271.

1) On NetBSD a working cabsl function must be present in libm to build gfortran.
This has been added to -current on 2014/10/10 and to NetBSD7 on 2014/10/13. Before this date it was defined in complex.h but missing from libm in current and 7.I am working on a solution for older systems.
 
2) This package and the lang/gcc4x need a cleanup or a complete new start. I
think that SUBST_VARS could handle the platform dependencies in a much cleaner
way.

3) There are many undocumented hacks in the Makefile and patches. And yes, I
am guilty ;-)  I itend to document patches 

4) I run tests on 7.0 and 7.99 regularly, see test_summary.log at different 
times. Build status on different platforms:

a) NetBSD 7.99.1 amd64: Builds and tests OK

b) NetBSD 7.0 amd64: Builds and tests OK

c) NetBSD 7.0 i386: Builds (testsuite run not done yet)

d) NetBSD 6.0 i386: Build fails in gcc/sreal.c due to ambigious overloading
of __int64_t.
 
e) Debian jessie amd64: fails with the same error message as lang/gcc49:

/bin/bash ../../../../gcc-5-20141026/libgcc/../mkinstalldirs 32
mkdir -p -- 32
/usr/pkgsrc/wip/gcc50snapshot/work/build/./gcc/xgcc -B/usr/pkgsrc/wip/gcc50snapshot/work/build/./gcc/ -B/usr/pkg/gcc50snapshot/x86_64-debian-linux/bin/ -B/usr/pkg/gcc50snapshot/x86_64-debian-linux/lib/ -isystem /usr/pkg/gcc50snapshot/x86_64-debian-linux/include -isystem /usr/pkg/gcc50snapshot/x86_64-debian-linux/sys-include    -O2  -g -O2 -Wno-error -I/usr/include -DIN_GCC    -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o 32/libgcc_s.so.1.tmp -g -O2 -Wno-error -I/usr/include -m32 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o tf-signs_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f 32/libgcc_s.so && if [ -f 32/libgcc_s.so.1 ]; then mv -f 32/libgcc_s.so.1 32/libgcc_s.so.1.backup; else true; fi && mv 32/libgcc_s.so.1.tmp 32/libgcc_s.so.1 && ln -s libgcc_s.so.1 32/libgcc_s.so
/usr/bin/ld: -L/usr/pkgsrc/wip/gcc50snapshot/work/build/./gcc: error loading plugin: -L/usr/pkgsrc/wip/gcc50snapshot/work/build/./gcc: cannot open shared object file: No such file or directory
collect2: error: ld returned 1 exit status
Makefile:942: recipe for target 'libgcc_s.so' failed
make[5]: *** [libgcc_s.so] Error 1
make[5]: Leaving directory '/usr/pkgsrc/wip/gcc50snapshot/work/build/x86_64-debian-linux/32/libgcc'
Makefile:1141: recipe for target 'multi-do' failed
make[4]: *** [multi-do] Error 1
make[4]: Leaving directory '/usr/pkgsrc/wip/gcc50snapshot/work/build/x86_64-debian-linux/libgcc'
Makefile:116: recipe for target 'all-multi' failed
make[3]: *** [all-multi] Error 2
make[3]: Leaving directory '/usr/pkgsrc/wip/gcc50snapshot/work/build/x86_64-debian-linux/libgcc'
Makefile:19302: recipe for target 'all-stage1-target-libgcc' failed


Have fun,

Kai-Uwe 
(kuehro at gmx.de)
