Shop OBEX P1 Docs P2 Docs Learn Events
PropGCC 1.0.0 binaries? — Parallax Forums

PropGCC 1.0.0 binaries?

DavidZemonDavidZemon Posts: 2,973
edited 2015-03-14 08:53 in Propeller 1
I've been ignoring this problem for a while by installing the latest version of SimpleIDE and grabbing PropGCC from there, but it'd be great if there was a zip package of the latest [stable version of] PropGCC for each OS. Does this exist somewhere and I'm just missing it?

I know Windows has a zip in the downloads section, but even it is a year old and I thought there were more recent versions than that. And nothing for mac or linux later than 0.3.5.

Installation of PropWare requires propgcc, and I'd prefer to point users at a simple .zip for their target OS instead the SimpleIDE installation file.
«1

Comments

  • jazzedjazzed Posts: 11,803
    edited 2014-08-03 09:33
    It does not exist.

    The downloads section is no longer available for adding packages in any googlecode repository.

    PropellerGCC release_1_0 is only available in SimpleIDE packages today. I don't have time to make all these packages, and it seems no one else has publicly been concerned with the idea until now.

    Maybe you can make release_1_0 packages for all platforms and post some links?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-08-03 09:37
    i'll give it a shot. last time i tried this (8 months ago) i ran into problems, but i'll let you know my progress. I don't have access to a Mac though - I'll have to see if my friend is willing to spend some time on it as well.
  • pmrobertpmrobert Posts: 673
    edited 2014-08-03 19:29
    jazzed, how are you currently building the Windows binaries? Cross compiling or do you have a Win (minGW?) environment you use? Enquiring minds want to know!

    -Mike
  • jazzedjazzed Posts: 11,803
    edited 2014-08-03 19:43
    I've done both. Cross-compiling is faster.
  • pmrobertpmrobert Posts: 673
    edited 2014-08-03 20:00
    Faster due to -j make option? Or is the Win version of the tools less efficient in other ways?
  • jazzedjazzed Posts: 11,803
    edited 2014-08-03 21:00
    We use mingw for Windows compiling. Mingw does not allow for parallel builds (no -j).

    Even without parallel builds, Linux finishes cross compiling both trees in less than an hour in a VM on my computer.
    Just compiling one tree on Windows with mingw takes over 2 hours on my computer.

    Cross-compiling propeller-gcc is only available in the default branch.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-08-03 22:26
    jazzed wrote:
    Just compiling one tree on Windows with mingw takes over 2 hours on my computer.
    This is obviously not an environment I'm familiar with. Is this the 1960's? What could possibly take so long? (Even building the huge S2 GUI executable takes less than a minute.)

    OTOH, I'm rather envious. I could potentially start a build, leave to go kayaking in Port Townsend Bay, and get paid for two billable hours while working on my tan. :)

    -Phil
  • msrobotsmsrobots Posts: 3,709
    edited 2014-08-04 01:33
    This is obviously not an environment I'm familiar with. Is this the 1960's? What could possibly take so long? (Even building the huge S2 GUI executable takes less than a minute.)

    OTOH, I'm rather envious. I could potentially start a build, leave to go kayaking in Port Townsend Bay, and get paid for two billable hours while working on my tan. :)

    -Phil

    Maybe we Win 8.1 users need to install Linux to understand the problem...

    Enjoy!

    Mike
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-08-04 13:30
    GCC is ginormous. I remember it taking more like 4-5 hours last time I tried it. I'm impressed it only takes 2 hours for Steve! We'll see how long it takes on my dual-core i5 (w/ HT) in Linux tonight...
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-08-04 13:32
    Oh, has anyone run into an issue where it complains about texinfo missing even though it's installed? I downloaded the repo and tried simply running "make -j4" and, after a while, it complained about texinfo. I installed it with "sudo apt-get install texinfo" on Ubuntu 14.04 but it still whines. If you need the exact error I can paste it in when I get home.
  • jazzedjazzed Posts: 11,803
    edited 2014-08-04 14:54
    Oh, has anyone run into an issue where it complains about texinfo missing even though it's installed? I downloaded the repo and tried simply running "make -j4" and, after a while, it complained about texinfo. I installed it with "sudo apt-get install texinfo" on Ubuntu 14.04 but it still whines. If you need the exact error I can paste it in when I get home.


    Read this about middle of the page.
  • TorTor Posts: 2,010
    edited 2014-08-05 01:37
    This is obviously not an environment I'm familiar with. Is this the 1960's? What could possibly take so long? (Even building the huge S2 GUI executable takes less than a minute.)
    It's large, as has been mentioned, but it's also that a standard GCC build is done three times (although I don't know how Steve prefer to do this of course). First build is to create a hopefully working C compiler by compiling with the native compiler (even though on Linux the native compiler is usually gcc), then use the newly built compiler to build a new one (with itself as the compiler), then build a third one with the second compiler and do a binary comparision between the last two. When equal, success.
    In addition to that there is the 'configure' stage (autoconf) in front of each build. This can take a long time. Scripts running m4 and whatnot. Test compiles of stubs to find each and every supported library function on that platform, and how many parameters they take (which can differ between operating systems). On Linux it is not too bad, but on most other platforms configure can take a long time indeed. On some libraries I build configure can take 10 minutes, or sometimes 20, while the compile itself takes a minute. Or less.
  • Heater.Heater. Posts: 21,230
    edited 2014-08-05 02:39
    On this 7 year old single core amd64 Debian machine running at 2.6GHz compiling propgcc takes 66 minutes.
  • potatoheadpotatohead Posts: 10,261
    edited 2014-08-05 09:17
    My 2012 Mac Book Pro will build it in about 12-15 minutes! That's with the parallel build option, and a moderate (5K RPM) disk 4GB RAM. I use a plain vanilla Xcode installation.

    Is a package for OS X 10.6.8 needed? I made one a while back. I can do that again. The last one I built is in my signature. Is that one correct?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-08-05 18:48
    Observation:
    After installing the old version of texinfo, life was going good. Eventually it died though. I was on the default branch (I now recognize that was dumb). I also have my old version of propgcc in my PATH - a p1 only version - the one that came with SimpleIDE. I believe that was being used to compile the core PropGCC libraries because the terminal error was "unknown command line option: -mp2".

    So, I see two possibilities: either it tried to set the PATH temporarily and failed, or it set the PATH correctly, but did not take into account that I'd set PREFIX to a directory other than /opt/parallax.

    Not a big deal. I moved /opt/parallax, switched to release-1-0 branch, and [locally] modified jbuild.sh to point to the correct output path. It's running now.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-08-05 20:01
    PropGCC built. Linux binaries only for tonight.
    http://david.zemon.name/downloads/PropGCC-linux_v1_0_0.tar.gz
    I'll repackage it with a different folder name tomorrow. Anyone that wants to download it and test, I won't mind. It built PropWare successfully though so that's good. Haven't tested anything further yet.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-08-06 09:57
    I've uploaded my own Linux binary, the windows binary from Google Code, and potatohead's Mac binary to http://david.zemon.name/downloads. This will make an installation script for PropWare much better!!! :D
  • jazzedjazzed Posts: 11,803
    edited 2014-08-06 10:05
    I've uploaded my own Linux binary, the windows binary from Google Code, and potatohead's Mac binary to http://david.zemon.name/downloads. This will make an installation script for PropWare much better!!! :D


    Congratulations.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 05:00
    I'm getting an error when trying to cross-compile for win32. Box is a bare-bone Debian system setup for compiling PropGCC. I'm on the default branch and have compiled native PropGCC successfully. Shortly after starting `make CROSS=win32`, I get the following snippet:
    checking for a BSD-compatible install... /usr/bin/install -cchecking whether NLS is requested... no
    checking for msgfmt... /usr/bin/msgfmt
    checking for gmsgfmt... /usr/bin/msgfmt
    checking for xgettext... /usr/bin/xgettext
    checking for msgmerge... /usr/bin/msgmerge
    checking for i586-mingw32msvc-gcc... gcc
    checking for C compiler default output file name... 
    configure: error: in `/home/david/build-win32/binutils/intl':
    configure: error: C compiler cannot create executables
    See `config.log' for more details.
    make[2]: *** [configure-intl] Error 1
    
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 05:02
    And here's a snippet from build-win32/binutils/intl/config.log
    configure:2947: gcc -V >&5gcc: error: unrecognized command line option '-V'
    gcc: fatal error: no input files
    compilation terminated.
    configure:2958: $? = 4
    configure:2947: gcc -qversion >&5
    gcc: error: unrecognized command line option '-qversion'
    gcc: fatal error: no input files
    compilation terminated.
    configure:2958: $? = 4
    configure:2978: checking for C compiler default output file name
    configure:3000: gcc -g -O2 -D__USE_MINGW_ACCESS   -Wl,--stack,12582912 conftest.c  >&5
    /usr/bin/ld: unrecognized option '--stack'
    /usr/bin/ld: use the --help option for usage information
    collect2: error: ld returned 1 exit status
    configure:3004: $? = 1
    configure:3041: result: 
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME ""
    | #define PACKAGE_TARNAME ""
    | #define PACKAGE_VERSION ""
    | #define PACKAGE_STRING ""
    | #define PACKAGE_BUGREPORT ""
    | #define PACKAGE_URL ""
    | /* end confdefs.h.  */
    | 
    | int
    | main ()
    | {
    | 
    |   ;
    |   return 0;
    | }
    configure:3047: error: in `/home/david/build-win32/binutils/intl':
    configure:3051: error: C compiler cannot create executables
    See `config.log' for more details.
    

    and my version of GCC
    david@debian-x86:~/propgcc$ gcc --version
    gcc (Debian 4.7.2-5) 4.7.2
    Copyright (C) 2012 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
  • ersmithersmith Posts: 6,053
    edited 2014-09-09 05:29
    I'm getting an error when trying to cross-compile for win32. Box is a bare-bone Debian system setup for compiling PropGCC. I'm on the default branch and have compiled native PropGCC successfully. Shortly after starting `make CROSS=win32`, I get the following snippet:
    checking for a BSD-compatible install... /usr/bin/install -cchecking whether NLS is requested... no
    checking for msgfmt... /usr/bin/msgfmt
    checking for i586-mingw32msvc-gcc... gcc
    checking for C compiler default output file name... 
    make[2]: *** [configure-intl] Error 1
    

    When it checks for i586-mingw32msvc-gcc it should print "i586-mingw32msvc-gcc", not "gcc". Do you have the i586-mingw32msvc-gcc cross-compiler installed and on your PATH?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 06:06
    oh.... nope. that's odd isn't it?
  • ersmithersmith Posts: 6,053
    edited 2014-09-09 11:20
    oh.... nope. that's odd isn't it?

    Not especially -- not many systems install cross-compilers by default. If you're on Debian or Ubuntu just use apt-get to install the mingw32 package.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 12:16
    ersmith wrote: »
    Not especially -- not many systems install cross-compilers by default. If you're on Debian or Ubuntu just use apt-get to install the mingw32 package.

    i just meant odd that it found standard gcc in place of it. i'll install it soon as I get home. thanks for the tip :thumb:
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 14:48
    For anyone else running into this:
    $ sudo apt-get install mingw32
    $ rm -rf ../build-win32
    $ make CROSS=win32
    

    you could do a "make clean" instead of deleting the build-win32 directory - but what a waste of time that would be. If you don't delete the build-win32 directory though, it won't try to re-configure the mingw compiler and will fail again.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 15:22
    I'm running Debian 7.6 with "uname -a" returning
    Linux debian-x86 3.2.0-4-486 #1 Debian 3.2.60-1+deb7u3 i686 GNU/Linux
    
    and mingw version
    $ i586-mingw32msvc-gcc -v
    Using built-in specs.
    Target: i586-mingw32msvc
    Configured with: /build/buildd-mingw32_4.2.1.dfsg-2-i386-16QVXY/mingw32-4.2.1.dfsg/build_dir/src/gcc-4.2.1-2-dfsg/configure -v --prefix=/usr --target=i586-mingw32msvc --enable-languages=c,c++ --enable-threads --enable-sjlj-exceptions --disable-multilib --enable-version-specific-runtime-libs
    Thread model: win32
    gcc version 4.2.1-sjlj (mingw32-2)
    

    and I've hit the same "undefined reference to `_usleep'" as this thread
    I will reiterate the words spoken in that thread some 4 months ago: wtf?! I'm especially stumped since Steve was only able to reproduce the problem by dropping back to Debian 6.0.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 15:31
    The Windows and Linux versions uploaded by Steve in that thread are 1.9.0-2408 and the current copy yields 1.9.0.2412. That's not a very big change. Most importantly, propeller-elf-as is version 2.23.1 so that satisfies my requirements. I'll be using them instead of trying to custom-compile.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-09-09 17:54
    Anyone have a Mac version of 1.9.0 or want to compile and upload one? I can compile it in a week or two when I borrow my friend's mac if no one has it ready to go
  • potatoheadpotatohead Posts: 10,261
    edited 2014-09-09 23:53
    I just pulled the latest, last activity by David Betz 10 days ago, revision 2414.


    gcc.png



    It's building now. Enough of GCC is done to report this for a version:
    spanky:opt ddingus$ ./parallax/bin/propeller-elf-gcc -v
    Using built-in specs.
    COLLECT_GCC=./parallax/bin/propeller-elf-gcc
    COLLECT_LTO_WRAPPER=/opt/parallax/libexec/gcc/propeller-elf/4.6.1/lto-wrapper
    Target: propeller-elf
    Configured with: /Users/ddingus/PropGCC/gcc/configure --target=propeller-elf --prefix=/opt/parallax --disable-nls --disable-shared --with-pkgversion=propellergcc-alpha_v1_9_0_ --with-bugurl=http://code.google.com/p/propgcc/issues
    Thread model: single
    gcc version 4.6.1 (propellergcc-alpha_v1_9_0_) 
    
    

    It's big enough I can't put it here. I'll dropbox it or something when I figure out what is on this older Mac. This will be a build for Snow Leopard 10.6.8+ Should work on newer OSX versions.

    BTW, where did jbuild go? It was way faster!
    811 x 242 - 92K
  • potatoheadpotatohead Posts: 10,261
    edited 2014-09-10 00:26
    Ok, this should be a working binary build. There is less here than I remember, demos, etc... I think I combined a few things last time to make a better package with the demos and such. Whatever happened, this is just PropGCC + utils, etc...

    Feel free to put this anywhere, or combine it. Should it not run on your Mac, look at the xattr command, and this post I made a while back about xattr, which I promise I'll write up and include in PropGCC. Just remembered I said I would do this. OSX has an extra set of Access Control Lists that overlay the standard UNIX permissions. (sorry)

    Ignore P2 related things below. They are for an old chip revision and should be ignored.
    I've tar compressed "tar -cxf" everything and it should work on Mac OS 10.6.8 or greater... This package has P2load in it, and the install instructions are:

    0. Get the package here: https://www.dropbox.com/sh/pf1uulr4bbuof5v/gCm6Xx0wYC?v=1mcis

    1. Uncompress this where you want it to reside. With root, you can use /opt/parallax ; otherwise, put it in your home directory. You can double click the package and Mac OS will just create the opt/parallax directory right where the archive is. Copy it to the desired location however you want to. Edit: If you are on command line, not Finder or some other utility, I would use cp -Rp so that the permissions carry over to the destination.

    2. Deal with MacOS Internet ACL permissions: xattr -r -d com.apple.quarantine [directory location] You might want to do ls -le to verify the com.apple.quarantine is the offending ACL. Repeat this until you do not see an "@" sign in your UNIX permissions seen with ls -l. Optionally, chmod -R 777 [directory location] to make everything executable, readable, writable. Admittedly, a bulk chmod is bad practice, but it's quick. Without a script to set permission defaults, it's a tedious exercise otherwise. Ideally, the tarball contains the right stuff and you can skip the chmod step. Try running and building with it before you decide to chmod the whole thing.

    3. Set your path. I need to learn how to do this on MAC OS properly. Maybe somebody can chime in. What I did was just set the path in the terminal I was using because it's not hard:

    Say you did put this in /opt/parallax ...

    PATH=/opt/parallax/bin:$PATH
    export PATH

    4. Dry run! Try Propgcc and P2load to verify they run.



    spanky:~ ddingus$ propeller-elf-gcc -v
    Using built-in specs.
    COLLECT_GCC=propeller-elf-gcc
    COLLECT_LTO_WRAPPER=/opt/parallax/libexec/gcc/propeller-elf/4.6.1/lto-wrapper
    Target: propeller-elf
    Configured with: ../../propgcc/gcc/configure --target=propeller-elf --prefix=/opt/parallax --disable-nls --disable-libssp --disable-lto --disable-shared --with-pkgversion=propellergcc_v1_0_0_ --with-bugurl=http://code.google.com/p/propgcc/issues
    Thread model: single
    gcc version 4.6.1 (propellergcc_v1_0_0_)
    spanky:~ ddingus$ p2load
    error: can't find a port with a propeller chip
    spanky:~ ddingus$


    Now you are where I am. It runs, that's all I've checked. Now I need to get the USB, etc... all sorted out. :)

    You guys running on Mac OS have any hints? I've got an XP virtual machine on this Mac, so I can run Pnut. What I don't know is how to setup the Prop Plug.

    5. Get the Demos I just added to the folder link above. Put them in the parallax folder, where ever you put it. The default is /opt/parallax/demos

    6. Go and build one:




    spanky:toggle ddingus$ cd lmm_c_toggle
    spanky:lmm_c_toggle ddingus$ ls -l
    total 16
    -rw-r--r-- 1 ddingus admin 397 May 21 20:20 Makefile
    -rw-r--r-- 1 ddingus admin 3354 May 21 20:20 toggle.c
    spanky:lmm_c_toggle ddingus$ make
    propeller-elf-gcc -Os -mlmm -mlmm -o toggle.o -c toggle.c
    propeller-elf-gcc -mlmm -o toggle.elf toggle.o -s
    spanky:lmm_c_toggle ddingus$ ls -l
    total 56
    -rw-r--r-- 1 ddingus admin 397 May 21 20:20 Makefile
    -rw-r--r-- 1 ddingus admin 3354 May 21 20:20 toggle.c
    -rwxr-xr-x 1 ddingus admin 15076 May 21 21:26 toggle.elf
    -rw-r--r-- 1 ddingus admin 2972 May 21 21:26 toggle.o
    spanky:lmm_c_toggle ddingus$

    You can find the binary package here: https://www.dropbox.com/s/6h9zvqe63aj5emx/parallax.zip?dl=0 Dropbox reports that link will be valid in 5 mins or so.

    Hope it works. I'll check in tomorrow. 'nite :)
Sign In or Register to comment.