Skip to content
Rust Front-end to GCC
C Ada C++ Go D GCC Machine Description Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
INSTALL 2014-10-12 Manuel López-Ibáñez <manu@gcc.gnu.org> Oct 12, 2014
config Come up with bootstrap-lto-lean config. Apr 9, 2019
contrib
fixincludes
gcc x Jul 26, 2019
gnattools PR81878: fix --disable-bootstrap --enable-languages=ada Nov 20, 2018
gotools PR go/89406 Mar 1, 2019
include [ARC]PR 88409: miscompilation due to missing cc clobber in longlong.h… Apr 3, 2019
intl 2018-11-06 Hafiz Abid Qadeer <abidh@codesourcery.com> Nov 7, 2018
libada Update copyright years. Jan 1, 2019
libatomic Update copyright years. Jan 1, 2019
libbacktrace PR libbacktrace/89669 Mar 11, 2019
libcc1 Update copyright years. Jan 1, 2019
libcpp Fix typo in comment Apr 3, 2019
libdecnumber Update copyright years. Jan 1, 2019
libffi Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). Oct 31, 2018
libgcc gcc/ChangeLog: Feb 21, 2019
libgfortran PR libgfortran/79540 Mar 25, 2019
libgo libgo: update to Go 1.12.2 Apr 8, 2019
libgomp libgomp/ChangeLog: Mar 27, 2019
libgrust GCC RUST: Dec 3, 2013
libhsail-rt Update copyright years. Jan 1, 2019
libiberty Regenerate libiberty/functions.texi Apr 7, 2019
libitm Update copyright years. Jan 1, 2019
libobjc * encoding.c (DFmode): #undef before #define. Mar 6, 2019
liboffloadmic 2019-01-09 Sandra Loosemore <sandra@codesourcery.com> Jan 9, 2019
libphobos PR d/88462 Apr 1, 2019
libquadmath Update copyright years. Jan 1, 2019
libsanitizer LOCAL_PATCHES: Add revision. Apr 8, 2019
libssp Update copyright years. Jan 1, 2019
libstdc++-v3 Add PSTL internal namespace qualifications Apr 9, 2019
libvtv 2019-02-19 Caroline Tice <cmtice@google.com> Feb 20, 2019
lto-plugin Remove a legacy lto-symtab.c file. Feb 26, 2019
maintainer-scripts Improve error message for bad arguments to script Feb 23, 2019
zlib 2019-01-21 Iain Buclaw <ibuclaw@gdcproject.org> Jan 21, 2019
.dir-locals.el * .dir-locals.el: Add. Oct 16, 2013
.gitattributes add basic .gitattributes files to notice whitespace issues Apr 23, 2016
.gitignore .gitignore: Ignore in-tree prerequisites. Sep 9, 2016
.travis.yml RUST: update travis Dec 4, 2013
ABOUT-NLS top: Jul 4, 2003
COPYING 2005-07-14 Kelley Cook <kcook@gcc.gnu.org> Jul 14, 2005
COPYING.LIB Revert delta 190174 Aug 6, 2012
COPYING.RUNTIME Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. Apr 9, 2009
COPYING3 * COPYING_v3: New file. Contains version 3 of the GNU General Public … Jul 17, 2007
COPYING3.LIB * COPYING_v3: New file. Contains version 3 of the GNU General Public … Jul 17, 2007
ChangeLog Come up with bootstrap-lto-lean config. Apr 9, 2019
ChangeLog.jit Merger of dmalcolm/jit branch from git Nov 11, 2014
ChangeLog.tree-ssa Merge tree-ssa-20020619-branch into mainline. May 13, 2004
MAINTAINERS * MAINTAINERS (Various Maintainers): Remove myself from dfp.c and Mar 28, 2019
Makefile.def cleanup build to get to barebones Apr 27, 2019
Makefile.in cleanup build to get to barebones Apr 27, 2019
Makefile.tpl
README.gcc GCC Rust: Oct 22, 2013
README.org
ar-lib Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). Oct 31, 2018
compile Update from upstream Automake files. Nov 16, 2014
config-ml.in Add D front-end, libphobos library, and D2 testsuite. Oct 28, 2018
config.guess Update config.guess, config.sub (PR target/88535) Jan 3, 2019
config.rpath Remove freebsd1 from libtool.m4 macros and config.rpath. Feb 13, 2011
config.sub Update config.guess, config.sub (PR target/88535) Jan 3, 2019
configure Merge remote-tracking branch 'gcc/master' Apr 9, 2019
configure.ac Merge remote-tracking branch 'gcc/master' Apr 9, 2019
depcomp Update from upstream Automake files. Nov 16, 2014
install-sh Update from upstream Automake files. Nov 16, 2014
libtool-ldflags PR sanitizer/56781 Apr 17, 2014
libtool.m4 Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). Oct 31, 2018
ltgcc.m4 * libtool.m4: Update to libtool 2.2.6. Sep 26, 2008
ltmain.sh
ltoptions.m4 Sync from git Libtool and regenerate. Dec 5, 2009
ltsugar.m4 * libtool.m4: Update to libtool 2.2.6. Sep 26, 2008
ltversion.m4 Sync from git Libtool and regenerate. Dec 5, 2009
lt~obsolete.m4 Sync from git Libtool and regenerate. Dec 5, 2009
missing Update from upstream Automake files. Nov 16, 2014
mkdep merge with /cvs/src Jul 22, 2000
mkinstalldirs Update from upstream Automake files. Nov 16, 2014
move-if-change Update move-if-change from gnulib Nov 16, 2014
multilib.am Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). Oct 31, 2018
symlink-tree 2005-07-14 Kelley Cook <kcook@gcc.gnu.org> Jul 14, 2005
test-driver Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). Oct 31, 2018
travis-build.sh RUST: update travis Dec 4, 2013
ylwrap Update from upstream Automake files. Nov 16, 2014

README.org

Rust Front-End to GCC

This is an implementation of Rust ontop of GCC.

Building

Building gccrs is fairly confsing to most people who haven’t built GCC before:

YOU CANNOT build GCC within the same directory of the sources!

$ apt-get install bison flex build-essential libgmp-dev libmpfr-dev libmpc-dev

Then to compile:

$ git clone https://github.com/redbrain/gccrs.git # or the gcc offical branch

$ cd gccrs
$ ./contrib/download_prerequisites # optional if you havent gmp/mpfr/mpc

$ mkdir gccpy-build
$ cd gccpy-build
$ ../configure --prefix=/opt/gccrs \
  --enable-languages=rust \
  --disable-multilib \
  --disable-bootstrap
$ make
$ sudo make install
$ export PATH=/opt/gccrs/bin
$ export LD_LIBRARY_PATH=/opt/gccrs/lib:$LD_LIBRARY_PATH
$ cd -

Usage

For my development sessions i generally pass:

$ gccrs -g -O2 -frust-dump-dot helloworld.rs -o helloworld
$ ./helloworld

Options:

-frust-dump-dot Dumps out the textural output of the DOT IL

-fdump-tree-gimple Dumps the textural output of the code generated for the GCC middle-end.

Remember you can use all the normal GCC compiler options it works as if you were compiling C with GCC all target specific options will work etc.

Status

Very early and out of date

You can’t perform that action at this time.