4 changed files with 113 additions and 23 deletions
@ -1,24 +1,108 @@
@@ -1,24 +1,108 @@
|
||||
This is a somewhat ordered TODO list: |
||||
A (slightly) ordered set of tasks for crosstool-NG. Written in a cryptic language; contact me if you want to help with any of these :) |
||||
|
||||
Recurring tasks: |
||||
-- Alexey Neyman (@stilor) |
||||
|
||||
- update versions for every tools... |
||||
|
||||
- update and/or upgrade all samples |
||||
|
||||
|
||||
Non-recurring tasks: |
||||
|
||||
- update newlib (for enhanced bare metal) |
||||
- try to make it generic, will help for uClibc++ |
||||
|
||||
- multilib |
||||
|
||||
- Cygwin target (needs newlib) |
||||
- so we can build toolchains that generate code for Windows/Cygwin |
||||
|
||||
- uClibc++ |
||||
- see newlib, above |
||||
|
||||
- uClinux |
||||
- check whether we can use newlib under uClinux (?) |
||||
[ ] FreeBSD |
||||
[ ] Use 'cc' rather than 'gcc' on the host |
||||
[ ] Detect in configure what the default value is |
||||
[ ] Allow passing via CC=... to ct-ng |
||||
[ ] Same for ar/ld/ranlib/whatever we're using |
||||
[ ] Same for other utilities (patch, python, ...) |
||||
[ ] Allow using BSD patch |
||||
[ ] Set up 3 testing VMs: plain (using clang), using default 'gcc', using 'gcc6' |
||||
[ ] GDB7.1 build fails on macOS |
||||
[ ] need 'cpp' in the list of symlinked tools |
||||
[ ] still fails at link due to multiple definitions of BC/UP/PC |
||||
[ ] mingw.sh: create a hook for "pre-checks" for all libcs |
||||
[ ] move CT_DoMultilibList to this new hook? |
||||
[ ] go over all config options and evaluate their applicability to cross/canadian/cross-native (i.e. WANTS_STATIC_LINK does not have to test build's support for static link) |
||||
[ ] Remove per-arch patching (this makes .build/src non-sharable between builds!) |
||||
[ ] Update "Internals" chapter in the docs to match current state |
||||
[ ] Integrate openrisc support |
||||
[ ] Re-enable shared libraries - can it be done without wrapper scripts, e.g. via rpath? |
||||
[ ] 'ct-ng' source to disregard FORBID_DOWNLOADS and to avoid clobbering .build and build.log |
||||
[ ] Restore blackfin/fdpic support? |
||||
[ ] Install bash completion script - are there any default locations for it? |
||||
[ ] Do we need "HACK: we need to override SHLIB_LC from gcc/config/t-slibgcc-elf-ver" block in 100-gcc.sh? We do create a dummy libc.so |
||||
[ ] Follow up on -static -Wl,--dynamic-list=... weirdness |
||||
[ ] xldd.in |
||||
[ ] Deduce root from the location of the script itself by default + option for multiroot selection (e.g. for SH) |
||||
[ ] Handle CT_LD_LIBRARY_PATH in lieu of LD_LIBRARY_PATH |
||||
[ ] Handle AT_SECURE |
||||
[ ] Handle DT_RPATH/DT_RUNPATH separately (they have different priority vs LD_LIBRARY_PATH) |
||||
[ ] Handle default ld_library_path after ld.so.conf cache |
||||
[ ] Add optional removal of .build/src as part of build-all |
||||
[ ] Add removal of non-precious toolchains (i.e. those that are not needed for canadian) |
||||
[ ] Or remove all *when* they are no longer needed? |
||||
[ ] GMP select the right CC when not cross-compiling (https://github.com/crosstool-ng/crosstool-ng/pull/627) |
||||
[ ] Default to arch=i686 on x86 |
||||
[ ] Run ct-ng oldconfig at the start, or detect if a different version of ct-ng has been used? |
||||
[ ] Move fetching config.guess/config.sub to scripts/functions to use common wget/curl wrappers |
||||
[ ] Allow auto-update as part of the build |
||||
[ ] Do they have versions? Is it possible to request a specific version? |
||||
[ ] Separate 'make check' for companion libs and companion tools? |
||||
[ ] gettext - test internationalization |
||||
[ ] seems the DB is hardcoded into .build/<TARGET>/... location - is it possible to make it relocatable? |
||||
[ ] add passthrough to configure, for host/target |
||||
[ ] Read/spellcheck configs & scripts |
||||
[ ] 'ct-ng olddefconfig' |
||||
[ ] Install config.gen so that it is not rebuilt in the installed configurations |
||||
[ ] Install a "trap" C++ compiler as ${CT_TARGET}-g++ during pass-1/pass-2 to trap attempts to compile target code with g++ (currently glibc detects host g++ and warns that it uses g++ w/o target triplet) |
||||
[ ] Somehow it needs to be functional during the configure step - export env var while running in CT_DoExecLog with CFG level, and forward it to host compiler? |
||||
[ ] elf2flt not compatible with multiple linkers enabled in binutils (ld.bfd + ld.gold) - fix upstream? |
||||
[ ] Companion libs |
||||
[ ] Group options into submenus |
||||
[ ] Allow building [companion] target libs (and tools, like gdbserver or native gdb or strace) for all multilibs |
||||
[ ] Install companion libs into a multi-os-directory for the default multilib |
||||
[ ] Perhaps remove the distinction between multi_os_dir/multi_os_dir_gcc and use gcc-reported dir always, and rely on "demultilib" to combine them if possible |
||||
[ ] Check for python-devel to enable cross-gdb python bindings |
||||
[ ] Common location for sources provided by ctng - duma.in, gdbinit.in, uclibc{,-ng}-config.in ... |
||||
[ ] CTNG_LD_IS=bfd has no effect on subsequent build steps, as each step runs in its own environment |
||||
[ ] Enable other languages in some sample(s): |
||||
[ ] Ada (?) - requires gnatbind/gnatmake on the host |
||||
[X] Seems to build |
||||
[ ] Try to run |
||||
[ ] Obj-C/C++ |
||||
[X] Seems to build |
||||
[ ] Try to run - seems to crash, need to investigate |
||||
[ ] Go |
||||
[ ] Fix the build |
||||
[ ] Try to run |
||||
[ ] #516 Building with GO support fails |
||||
[ ] #521 gccgo - i586-unknown-linux-gnu - fails on missing version.go |
||||
[ ] Smoke-test test suite - whatever is supported by a particular toolchain |
||||
[ ] Compile baremetal, shared, static, static-libgcc, static-libstdc, C++, Fortran, Ada, Obj-C, Obj-C++, multilibs |
||||
[ ] Disallow libc selections that cannot handle the arch (e.g. aarch64-*-uclibc, aarch64-*-musl, ...) |
||||
[ ] Support removal of .build/<TARGET>/build after each step (to save space while compiling in a VM; and to test restartability - since this directory is lost after restart) |
||||
[ ] Configure enhancements |
||||
[ ] What is --host= in ct-ng's configure used for? should it set the default canadian cross? |
||||
[ ] CFLAGS/LDFLAGS from configure should probably be added into default build flags |
||||
[ ] Move tool checks from configure to runtime (i.e. if xz was installed after crosstool-ng, it should be usable) |
||||
[ ] Check for companion libs and allow using host's libraries for native/cross (need to check if the host has them) - but allow them to be selected for build |
||||
[ ] Merge aggregator scripts like cc.sh, debug.sh etc |
||||
[ ] #534 Merge gcc backends in 100-gcc.sh |
||||
[ ] Currently some options (e.g. plugins) are not supported in core backend, hence aren't available on baremetal configurations |
||||
[ ] Support clang |
||||
[ ] Generate per-package version Kconfig fragments, and include them |
||||
[ ] Add a script to poll for new releases |
||||
[ ] Install a single lib/ directory with all the stuff needed - scripts, makefile fragments, etc |
||||
[ ] Separate maintainer's scripts from the scripts used by crosstool-ng itself |
||||
[ ] Commit testing.py to the new maintainer's dir |
||||
[ ] Add an ability to do a single run of testing.py? or just use build-all, when the branch for separate canadian install is done |
||||
[ ] Extensibility to allow custom kernel headers and/or libc |
||||
[ ] Support elfkickers |
||||
[ ] Make cross-native toolchain non-experimental |
||||
[ ] Rework dependency order to suit xnative toolchain too |
||||
[ ] Make native/cross-native toolchain non-experimental |
||||
[ ] Pick up libc from host for native |
||||
[ ] Optimize steps to not require simple-cross for cross-native |
||||
[ ] Make supplemental commands like show-config leave .config and .build alone |
||||
[ ] Test populate script |
||||
[ ] 3rd party extensions to GCC |
||||
[ ] GHDL seems to be active and supports GCC6 |
||||
[ ] COBOL? Cannot find which GCC version they need [http://cobolforgcc.sourceforge.net/] |
||||
[ ] At the very least they have an awesome guide to GCC internals: http://cobolforgcc.sourceforge.net/cobol_14.html; might just as well reference it in our docs |
||||
[ ] Modula-2 supports GCC 4.7 as the latest |
||||
[ ] Resurrect GCC4.7? |
||||
[ ] readelf: DWARF parser does not handle DW_CFA_remember_state/DW_CFA_restore_state |
||||
[ ] Support uClibc++? |
||||
|
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
### Issue submission guidelines |
||||
See [detaled guidelines](http://crosstool-ng.github.io/support/). In short: |
||||
- Report crosstool-NG version |
||||
- Report host OS and its version |
||||
- Attach `.config` (unless the issue is not related to any configuration) |
||||
- Attach `build.log` (unless crosstool-NG fails before the build starts) |
Loading…
Reference in new issue