Shop OBEX P1 Docs P2 Docs Learn Events
propgcc now in the Parallax github - Page 5 — Parallax Forums

propgcc now in the Parallax github

1235711

Comments

  • David BetzDavid Betz Posts: 14,516
    edited 2015-03-31 17:34
    Windows and Linux builds of gcc5 have both just finished successfully :) I'm still working out how best to publish them, as I don't like copying to my downloads folder where you have no way of knowing which commit they came from
    What would make that easier for you?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 17:56
    David Betz wrote: »
    What would make that easier for you?

    Nothing. I just had to talk with my dad about security. Problem solved now.

    You can visit TeamCity directly now (click "Login as guest") and download builds from there. If you click on a specific run configuration, you can download past builds as well. Each build tells you exactly what commits were incorporated into that build, so it becomes very obvious what you're downloading. You can also preview the contents of the archive prior to downloading.

    http://david.zemon.name:8111/project.html?projectId=PropGCC5&tab=projectOverview

    "PropGCC" is the old propgcc repo. "PropGCC5" is the new propeller-gcc repo. I will delete the "PropGCC" project as soon as I iron out a few more issues with PropGCC5 and then rename PropGCC5 to PropGCC (I created PropGCC5 before you added gcc4 as another submodule).
  • David BetzDavid Betz Posts: 14,516
    edited 2015-03-31 18:16
    Nothing. I just had to talk with my dad about security. Problem solved now.

    You can visit TeamCity directly now (click "Login as guest") and download builds from there. If you click on a specific run configuration, you can download past builds as well. Each build tells you exactly what commits were incorporated into that build, so it becomes very obvious what you're downloading. You can also preview the contents of the archive prior to downloading.

    http://david.zemon.name:8111/project.html?projectId=PropGCC5&tab=projectOverview

    "PropGCC" is the old propgcc repo. "PropGCC5" is the new propeller-gcc repo. I will delete the "PropGCC" project as soon as I iron out a few more issues with PropGCC5 and then rename PropGCC5 to PropGCC (I created PropGCC5 before you added gcc4 as another submodule).
    Are you not building propeller-gcc using the default gcc4 option? The gcc5 compiler is still a work in progress but the gcc4 compiler in the propeller-gcc tree is the same compiler that exists in the propgcc repository. I'd like to get some testing done on that so we can validate the propeller-gcc project and eventually get rid of the propgcc project.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 18:20
    I like bleeding edge stuff, so I was more interested in GCC5 first. Next is GCC4. The windows build is also being rebuilt as it includes files from both gcc 4 and 5 lol
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 18:24
    Any objection to using tar.gz instead of tar.bz2 for linux builds? TeamCity doesn't appear to have a bz2 library, so it won't let you preview bz2 archives :(
  • David BetzDavid Betz Posts: 14,516
    edited 2015-03-31 18:25
    Any objection to using tar.gz instead of tar.bz2 for linux builds? TeamCity doesn't appear to have a bz2 library, so it won't let you preview bz2 archives :(
    Fine by me. And thanks for taking on the task of creating these builds!!!
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 18:38
    The builds are huge! Any idea why the installation folder looks like this?
    dzweb@davidzemonname:~/TeamCity/buildAgent/work/71b5f7d6548ebb35/install-win32/parallax/libexec/gcc/propeller-elf/5.0.0$ ls -alh
    total 717M
    drwxr-xr-x 4 dzweb psacln 4.0K Mar 31 20:29 .
    drwxr-xr-x 3 dzweb psacln 4.0K Mar 31 20:29 ..
    drwxr-xr-x 2 dzweb psacln 4.0K Mar 31 20:29 install-tools
    drwxr-xr-x 2 dzweb psacln 4.0K Mar 31 20:29 plugin
    -rwxr-xr-x 1 dzweb psacln 140M Mar 31 20:29 cc1
    -rwxr-xr-x 1 dzweb psacln 143M Mar 31 20:29 cc1obj
    -rwxr-xr-x 1 dzweb psacln 162M Mar 31 20:29 cc1plus
    -rwxr-xr-x 1 dzweb psacln 2.2M Mar 31 20:29 collect2
    -rwxr-xr-x 1 dzweb psacln 139M Mar 31 20:29 f951
    -rwxr-xr-x 1 dzweb psacln 1.1K Mar 31 20:29 liblto_plugin.la
    lrwxrwxrwx 1 dzweb psacln   22 Mar 31 20:29 liblto_plugin.so -> liblto_plugin.so.0.0.0
    lrwxrwxrwx 1 dzweb psacln   22 Mar 31 20:29 liblto_plugin.so.0 -> liblto_plugin.so.0.0.0
    -rwxr-xr-x 1 dzweb psacln 335K Mar 31 20:29 liblto_plugin.so.0.0.0
    -rwxr-xr-x 1 dzweb psacln 130M Mar 31 20:29 lto1
    -rwxr-xr-x 1 dzweb psacln 2.5M Mar 31 20:29 lto-wrapper
    

    The source directory is ~/TeamCity/buildAgent/work/71b5f7d6548ebb35
    And I ran "make install INSTALL=~/TeamCity/buildAgent/work/71b5f7d6548ebb35/install-win32/parallax" to create these files. they're huge!!! :O
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 18:42
    Same size artifacts when build on my local machine. I guess that's just the new norm for GCC 5?
  • David BetzDavid Betz Posts: 14,516
    edited 2015-03-31 18:47
    The builds are huge! Any idea why the installation folder looks like this?
    dzweb@davidzemonname:~/TeamCity/buildAgent/work/71b5f7d6548ebb35/install-win32/parallax/libexec/gcc/propeller-elf/5.0.0$ ls -alh
    total 717M
    drwxr-xr-x 4 dzweb psacln 4.0K Mar 31 20:29 .
    drwxr-xr-x 3 dzweb psacln 4.0K Mar 31 20:29 ..
    drwxr-xr-x 2 dzweb psacln 4.0K Mar 31 20:29 install-tools
    drwxr-xr-x 2 dzweb psacln 4.0K Mar 31 20:29 plugin
    -rwxr-xr-x 1 dzweb psacln 140M Mar 31 20:29 cc1
    -rwxr-xr-x 1 dzweb psacln 143M Mar 31 20:29 cc1obj
    -rwxr-xr-x 1 dzweb psacln 162M Mar 31 20:29 cc1plus
    -rwxr-xr-x 1 dzweb psacln 2.2M Mar 31 20:29 collect2
    -rwxr-xr-x 1 dzweb psacln 139M Mar 31 20:29 f951
    -rwxr-xr-x 1 dzweb psacln 1.1K Mar 31 20:29 liblto_plugin.la
    lrwxrwxrwx 1 dzweb psacln   22 Mar 31 20:29 liblto_plugin.so -> liblto_plugin.so.0.0.0
    lrwxrwxrwx 1 dzweb psacln   22 Mar 31 20:29 liblto_plugin.so.0 -> liblto_plugin.so.0.0.0
    -rwxr-xr-x 1 dzweb psacln 335K Mar 31 20:29 liblto_plugin.so.0.0.0
    -rwxr-xr-x 1 dzweb psacln 130M Mar 31 20:29 lto1
    -rwxr-xr-x 1 dzweb psacln 2.5M Mar 31 20:29 lto-wrapper
    

    The source directory is ~/TeamCity/buildAgent/work/71b5f7d6548ebb35
    And I ran "make install INSTALL=~/TeamCity/buildAgent/work/71b5f7d6548ebb35/install-win32/parallax" to create these files. they're huge!!! :O
    LTO = link time optimization

    This is a new feature of GCC that Eric is working on adding to PropGCC. I don't think it's quite debugged yet and is probably disabled in the propeller-gcc build.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 18:50
    Very glad to hear lto is being worked on. I've been yearning for that for a while :)
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 19:05
    Are rpi builds with gcc5 working? I get the following:
    checking for a BSD-compatible install... /usr/bin/install -c
    checking for gawk... gawk
    /var/www/vhosts/david.zemon.name/propgcc5/src/gcc/libgcc/configure: line 2635: /var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc-rpi-build/target/bin/propeller-elf-gcc: cannot execute binary file: Exec format error
    checking for propeller-elf-ar... /var/www/vhosts/david.zemon.name/propgcc/bin/../lib/gcc/propeller-elf/5.0.0/../../../../propeller-elf/bin/ar
    checking for propeller-elf-lipo... propeller-elf-lipo
    checking for propeller-elf-nm... /var/www/vhosts/david.zemon.name/propgcc/bin/../lib/gcc/propeller-elf/5.0.0/../../../../propeller-elf/bin/nm
    checking for propeller-elf-ranlib... /var/www/vhosts/david.zemon.name/propgcc/bin/../lib/gcc/propeller-elf/5.0.0/../../../../propeller-elf/bin/ranlib
    checking for propeller-elf-strip... /var/www/vhosts/david.zemon.name/propgcc/bin/../lib/gcc/propeller-elf/5.0.0/../../../../propeller-elf/bin/strip
    checking whether ln -s works... yes
    checking for propeller-elf-gcc...  propeller-elf-gcc    
    checking for suffix of object files... configure: error: in `/var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc-rpi-build/gcc/propeller-elf/libgcc':
    configure: error: cannot compute suffix of object files: cannot compile
    See `config.log' for more details.
    make[1]: *** [configure-target-libgcc] Error 1
    make[1]: Leaving directory `/var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc-rpi-build/gcc'
    make: *** [/var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc-rpi-build/gcc/libgcc-built] Error 2
    dzweb@davidzemonname:~/propgcc5/src$
    

    Starting gcc4 builds now...
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-31 20:03
    I've deleted the old PropGCC project and renamed PropGCC5 to PropGCC. It's pretty obvious now - there's only two projects on the server: PropWare and PropGCC. PropGCC now has 6 build configurations, 2 versions of GCC * 3 OS builds. rpi still not working.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-01 03:13
    I've deleted the old PropGCC project and renamed PropGCC5 to PropGCC. It's pretty obvious now - there's only two projects on the server: PropWare and PropGCC. PropGCC now has 6 build configurations, 2 versions of GCC * 3 OS builds. rpi still not working.
    What is going wrong with the RaspberryPi builds?
  • Heater.Heater. Posts: 21,230
    edited 2015-04-01 03:26
    I tried building on a Pi 2 on Monday which failed. Sadly don't recall if I got the same error as shown in post #132. Building from the older GCC in your original github repo was fine. I won't be able to try again until tomorrow.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-01 04:13
    David Betz wrote: »
    What is going wrong with the RaspberryPi builds?
    Duh! As Heater pointed out, you've already said what went wrong in message #132. I'll try the cross build later tonight if I can recall what is necessary to setup for a RaspberryPi build.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-01 04:14
    Heater. wrote: »
    I tried building on a Pi 2 on Monday which failed. Sadly don't recall if I got the same error as shown in post #132. Building from the older GCC in your original github repo was fine. I won't be able to try again until tomorrow.
    The main difference between the propgcc github repository and the propeller-gcc one is that the propeller-gcc repository uses a new version of binutils and a new version of the library. By default, it uses the same version of gcc as the propgcc repository.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-01 07:55
    windows gcc4 build is also failing but I think I know why.
    propeller-elf-gcc   -mp2 -o /var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc4-win32-build/gcc/propeller-elf/xmm/libgcc/p2vectors.o -c /var/www/vhosts/david.zemon.name/propgcc5/src/gcc4/gcc/config/propeller/p2vectors.s
    propeller-elf-gcc   -o /var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc4-win32-build/gcc/propeller-elf/xmm/libgcc/spinboot.o -c /var/www/vhosts/david.zemon.name/propgcc5/src/gcc4/gcc/config/propeller/spinboot.s
    propeller-elf-gcc: error: unrecognized command line option '-mp2'
    make[5]: *** [/var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc4-win32-build/gcc/propeller-elf/xmm/libgcc/p2vectors.o] Error 1
    

    All cross builds (gcc 4 and 5) use gcc5's linux build. If the "-mp2" is a gcc4 only option, that would explain why it's failing when cross compiling gcc4 for windows. I'll mess with the configurations tonight to fix this issue.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-01 07:59
    windows gcc4 build is also failing but I think I know why.
    propeller-elf-gcc   -mp2 -o /var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc4-win32-build/gcc/propeller-elf/xmm/libgcc/p2vectors.o -c /var/www/vhosts/david.zemon.name/propgcc5/src/gcc4/gcc/config/propeller/p2vectors.s
    propeller-elf-gcc   -o /var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc4-win32-build/gcc/propeller-elf/xmm/libgcc/spinboot.o -c /var/www/vhosts/david.zemon.name/propgcc5/src/gcc4/gcc/config/propeller/spinboot.s
    propeller-elf-gcc: error: unrecognized command line option '-mp2'
    make[5]: *** [/var/www/vhosts/david.zemon.name/propgcc5/propeller-gcc4-win32-build/gcc/propeller-elf/xmm/libgcc/p2vectors.o] Error 1
    

    All cross builds (gcc 4 and 5) use gcc5's linux build. If the "-mp2" is a gcc4 only option, that would explain why it's failing when cross compiling gcc4 for windows. I'll mess with the configurations tonight to fix this issue.
    Okay, something is very wrong. When doing a build with gcc4, there shouldn't be any gcc5 compiler built and it certainly shouldn't be trying to use a gcc5 compiler.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-01 12:12
    David Betz wrote: »
    Okay, something is very wrong. When doing a build with gcc4, there shouldn't be any gcc5 compiler built and it certainly shouldn't be trying to use a gcc5 compiler.

    I meant to say it's a problem with my configuration. Cross-compiling requires propeller-elf-gcc to exist on the PATH... well, the version on my server's PATH is GCC5. So, I have to reconfigure the jobs and environment to do the right thing, not the easy thing.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-01 12:37
    I meant to say it's a problem with my configuration. Cross-compiling requires propeller-elf-gcc to exist on the PATH... well, the version on my server's PATH is GCC5. So, I have to reconfigure the jobs and environment to do the right thing, not the easy thing.
    I thought my makefile pushed the build directory onto the front of PATH before invoking the individual component makefiles. That should override anything already in your path.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-01 17:52
    I've deleted the old PropGCC project and renamed PropGCC5 to PropGCC. It's pretty obvious now - there's only two projects on the server: PropWare and PropGCC. PropGCC now has 6 build configurations, 2 versions of GCC * 3 OS builds. rpi still not working.
    Okay, I'm a bit confused I think. Are you now building everything from the propeller-gcc repository? Are you doing a cross build for Windows? I'm asking because i'm just working on modifying the openspin Makefile to do cross builds and am wondering how you managed to do them without these modifications. Or do you have a way to do native Windows, Mac, and Linux builds so that RaspberryPi is the only cross build?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-01 18:58
    David Betz wrote: »
    Okay, I'm a bit confused I think. Are you now building everything from the propeller-gcc repository? Are you doing a cross build for Windows? I'm asking because i'm just working on modifying the openspin Makefile to do cross builds and am wondering how you managed to do them without these modifications. Or do you have a way to do native Windows, Mac, and Linux builds so that RaspberryPi is the only cross build?

    I was actually wondering the very same thing... I'm not doing anything that weird/cool. I am using the new propeller-gcc repo and the host machine is Ubuntu 14.04. Btw - I sent you log in credentials a while ago via a PM if you want to check out the configurations for yourself. Once logged in (not as a guest) you can even see the environment variables at the time of each build and the full log.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-01 19:45
    IBtw - I sent you log in credentials a while ago via a PM if you want to check out the configurations for yourself.
    Sorry, I must have misplaced them. Could you send the again please? Thanks!

    Edit: Never mind. I found the PM.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-01 20:12
    Okay - fixed the path problem. Now the gcc4 win32 build is failing as expected, complaining about openspin.exe. I also found out that I'd forgotten to define the CROSS variable for gcc5 win32 build configuration, hence forth why it was "successful" :P

    Next time you commit to propeller-gcc, all six build configurations will get kicked off. The Linux builds for gcc 4 & 5 will both be triggered in parallel and when each of those successfully finish, their respective cross builds will trigger.

    I've disabled the explicit build step that ran "git submodule update". I'm fairly sure TeamCity does that by default, but am not sure yet. If the next build doesn't appear to pull your changes, I'll put it back in.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-02 03:43
    Okay - fixed the path problem. Now the gcc4 win32 build is failing as expected, complaining about openspin.exe. I also found out that I'd forgotten to define the CROSS variable for gcc5 win32 build configuration, hence forth why it was "successful" :P

    Next time you commit to propeller-gcc, all six build configurations will get kicked off. The Linux builds for gcc 4 & 5 will both be triggered in parallel and when each of those successfully finish, their respective cross builds will trigger.

    I've disabled the explicit build step that ran "git submodule update". I'm fairly sure TeamCity does that by default, but am not sure yet. If the next build doesn't appear to pull your changes, I'll put it back in.
    Okay, I made some changes to the openspin Makefiles and submitted a pull request to Roy. Once those changes are merged, I hope the issue with openspin.exe will be resolved. What did you have to do to fix the path problem? I guess pushing the build directory onto the front of PATH wasn't enough? Is there something I need to change in my Makefile?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-02 06:17
    David Betz wrote: »
    What did you have to do to fix the path problem? I guess pushing the build directory onto the front of PATH wasn't enough? Is there something I need to change in my Makefile?

    At the end of gcc5 linux build, I execute "make INSTALL=$HOME/propgcc5-bin install". Completion of gcc5-linux triggers gcc5 win32 and gcc5 rpi. Then, in win32& rpi builds, I modify the PATH var as PATH=$HOME/propgcc5-bin/bin:$PATH. The same thing for gcc4, but with propgcc4-bin instead of propgcc5-bin.

    Do the cross-compilation builds compile both a native and a cross version of the propgcc compiler??? I didn't think they would, which is why it made sense to me that you needed an existing, native version of propgcc on the path to be able to cross compile.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-02 07:52
    At the end of gcc5 linux build, I execute "make INSTALL=$HOME/propgcc5-bin install". Completion of gcc5-linux triggers gcc5 win32 and gcc5 rpi. Then, in win32& rpi builds, I modify the PATH var as PATH=$HOME/propgcc5-bin/bin:$PATH. The same thing for gcc4, but with propgcc4-bin instead of propgcc5-bin.

    Do the cross-compilation builds compile both a native and a cross version of the propgcc compiler??? I didn't think they would, which is why it made sense to me that you needed an existing, native version of propgcc on the path to be able to cross compile.
    I'm afraid I don't know the answer to that question. Eric added the cross compilation support. I'll try to find out how it is handled.
  • ersmithersmith Posts: 6,053
    edited 2015-04-02 09:13
    Do the cross-compilation builds compile both a native and a cross version of the propgcc compiler??? I didn't think they would, which is why it made sense to me that you needed an existing, native version of propgcc on the path to be able to cross compile.

    No. IIRC you have to do a native build before doing a cross build.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-04-02 09:16
    ersmith wrote: »
    No. IIRC you have to do a native build before doing a cross build.
    Okay, I guess I have to revisit my scheme of pushing the build directory on the front of PATH since it will contain binaries for the target architecture not the build machine architecture.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-02 15:45
    Getting closer. Looks like openspin is the last remaining piece :)
Sign In or Register to comment.