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

propgcc now in the Parallax github

1567911

Comments

  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-18 06:37
    That would be very cool. Unfortunately, I don't have access to the physical server. We would need propeller-load to work over an ssh tunnel.

    I do have a raspberry pi here though.... I suppose I could copy the files from the build server to the pi and then run the tests. That'd sure be interesting. Or at that point, actually I could install a build agent on the pi and have libpropeller only run from that build agent.
  • David BetzDavid Betz Posts: 14,511
    edited 2015-04-19 08:57
    I just tried a clean install of Ubuntu 14.04 and am having trouble building the obsolete version of texinfo that is needed for propgcc builds. Does anyone have a solution to this? I followed the instructions on the Google Code Wiki but texinfo-4.13 won't build on my system.
    terminal.o:/home/dbetz/texinfo-4.13/info/terminal.c:585: more undefined references to `tgetstr' follow
    terminal.o: In function `terminal_initialize_terminal':
    /home/dbetz/texinfo-4.13/info/terminal.c:617: undefined reference to `tgetflag'
    /home/dbetz/texinfo-4.13/info/terminal.c:620: undefined reference to `tgetstr'
    /home/dbetz/texinfo-4.13/info/terminal.c:628: undefined reference to `tgetstr'
    /home/dbetz/texinfo-4.13/info/terminal.c:629: undefined reference to `tgetstr'
    /home/dbetz/texinfo-4.13/info/terminal.c:630: undefined reference to `tgetstr'
    /home/dbetz/texinfo-4.13/info/terminal.c:631: undefined reference to `tgetstr'
    terminal.o:/home/dbetz/texinfo-4.13/info/terminal.c:633: more undefined references to `tgetstr' follow
    terminal.o: In function `terminal_initialize_terminal':
    /home/dbetz/texinfo-4.13/info/terminal.c:617: undefined reference to `tgetflag'
    terminal.o: In function `terminal_begin_using_terminal':
    /home/dbetz/texinfo-4.13/info/terminal.c:135: undefined reference to `tputs'
    /home/dbetz/texinfo-4.13/info/terminal.c:144: undefined reference to `tputs'
    terminal.o: In function `terminal_end_using_terminal':
    /home/dbetz/texinfo-4.13/info/terminal.c:166: undefined reference to `tputs'
    /home/dbetz/texinfo-4.13/info/terminal.c:175: undefined reference to `tputs'
    terminal.o: In function `terminal_goto_xy':
    /home/dbetz/texinfo-4.13/info/terminal.c:235: undefined reference to `tputs'
    terminal.o:/home/dbetz/texinfo-4.13/info/terminal.c:272: more undefined references to `tputs' follow
    collect2: error: ld returned 1 exit status
    
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-19 14:17
    Looks like those are curses dependencies. Do you have curses installed?
  • David BetzDavid Betz Posts: 14,511
    edited 2015-04-19 18:29
    Looks like those are curses dependencies. Do you have curses installed?
    That's what I thought and I tried installing libncurses5-dev but that didn't help.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-27 20:09
    Well this is new :/
    Linking C executable fatfilereader_test
    /opt/parallax.2408/propeller-elf/lib/libc.a(malloc.o): In function `__common_malloc':
    (.text+0x24): undefined reference to `__LMM_MVI_r2'
    /opt/parallax.2408/propeller-elf/lib/libc.a(malloc.o): In function `__common_malloc':
    (.text+0xb4): undefined reference to `__LMM_MVI_r6'
    /opt/parallax.2408/propeller-elf/lib/libc.a(malloc.o): In function `__common_malloc':
    (.text+0xd0): undefined reference to `__LMM_MVI_r6'
    /opt/parallax.2408/propeller-elf/lib/libc.a(malloc.o): In function `__hubmalloc':
    (.text+0xfc): undefined reference to `__LMM_MVI_r0'
    /opt/parallax.2408/propeller-elf/lib/libc.a(malloc.o): In function `__hubfree':
    (.text+0x10c): undefined reference to `__LMM_FCACHE_LOAD'
    /opt/parallax.2408/propeller-elf/lib/libc.a(rand.o): In function `_rand':
    (.text+0x18): undefined reference to `__LMM_MVI_r1'
    /opt/parallax.2408/propeller-elf/lib/libc.a(rand.o): In function `_rand':
    (.text+0x20): undefined reference to `__LMM_MVI_r6'
    /opt/parallax.2408/propeller-elf/lib/libc.a(toupper.o): In function `_toupper':
    (.text+0x8): undefined reference to `__LMM_MVI_r7'
    /opt/parallax.2408/propeller-elf/lib/libc.a(sbrk.o): In function `__sbrk':
    (.text+0x4): undefined reference to `__LMM_MVI_r6'
    /opt/parallax.2408/propeller-elf/lib/libc.a(sbrk.o): In function `__sbrk':
    (.text+0x10): undefined reference to `__LMM_MVI_r7'
    /opt/parallax.2408/propeller-elf/lib/libc.a(sbrk.o): In function `__sbrk':
    (.text+0x3c): undefined reference to `__LMM_MVI_r5'
    /opt/parallax.2408/propeller-elf/lib/libc.a(sbrk.o): In function `__sbrk':
    (.text+0x5c): undefined reference to `__LMM_MVI_r6'
    /opt/parallax.2408/propeller-elf/lib/libc.a(memcpy.o): In function `_memcpy':
    (.text+0x34): undefined reference to `__LMM_FCACHE_LOAD'
    /opt/parallax.2408/propeller-elf/lib/libc.a(memset.o): In function `_memset':
    (.text+0x4c): undefined reference to `__LMM_FCACHE_LOAD'
    /opt/parallax.2408/propeller-elf/lib/libc.a(memset.o): In function `_memset':
    (.text+0x88): undefined reference to `__LMM_FCACHE_LOAD'
    /opt/parallax.2408/propeller-elf/lib/libc.a(strcmp.o): In function `_strcmp':
    (.text+0x0): undefined reference to `__LMM_FCACHE_LOAD'
    /opt/parallax.2408/propeller-elf/lib/libc.a(strcpy.o): In function `_strcpy':
    (.text+0x4): undefined reference to `__LMM_FCACHE_LOAD'
    /opt/parallax.2408/propeller-elf/lib/libc.a(strlen.o):(.text+0x8): more undefined references to `__LMM_FCACHE_LOAD' follow
    /opt/parallax.2408/lib/gcc/propeller-elf/4.6.1/libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_SetContext':
    /home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind-sjlj.c:163: undefined reference to `__LMM_MVI_r9'
    /home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind-sjlj.c:163: undefined reference to `__LMM_MVI_r6'
    /opt/parallax.2408/lib/gcc/propeller-elf/4.6.1/libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_Register':
    /home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind-sjlj.c:134: undefined reference to `__LMM_MVI_r7'
    /opt/parallax.2408/lib/gcc/propeller-elf/4.6.1/libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_SetContext':
    /home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind-sjlj.c:163: undefined reference to `__LMM_MVI_r7'
    /opt/parallax.2408/lib/gcc/propeller-elf/4.6.1/libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_GetContext':
    /home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind-sjlj.c:149: undefined reference to `__LMM_MVI_r7'
    /opt/parallax.2408/lib/gcc/propeller-elf/4.6.1/libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_ForcedUnwind':
    /home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind.inc:202: undefined reference to `__LMM_MVI_r7'
    /opt/parallax.2408/lib/gcc/propeller-elf/4.6.1/libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_Resume':
    /home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind.inc:225: undefined reference to `__LMM_MVI_r7'
    /opt/parallax.2408/lib/gcc/propeller-elf/4.6.1/libgcc.a(unwind-sjlj.o):/home/steve/Projects/propgcc/gcc/libgcc/../gcc/unwind.inc:255: more undefined references to `__LMM_MVI_r7' follow
    collect2: ld returned 1 exit status
    PropWare/tests/CMakeFiles/fatfilereader_test.dir/build.make:88: recipe for target 'PropWare/tests/fatfilereader_test' failed
    make[2]: *** [PropWare/tests/fatfilereader_test] Error 1
    CMakeFiles/Makefile2:1064: recipe for target 'PropWare/tests/CMakeFiles/fatfilereader_test.dir/all' failed
    make[1]: *** [PropWare/tests/CMakeFiles/fatfilereader_test.dir/all] Error 2
    Makefile:137: recipe for target 'all' failed
    make: *** [all] Error 2
    

    Running from build 2408. I'll check tomorrow with a more up-to-date version
  • David BetzDavid Betz Posts: 14,511
    edited 2015-04-28 02:26
    Looks like it's not linking in the LMM kernel. Can you post the entire program and the commands you're using to build it?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-28 04:29
    It's building PropWare. Since it still builds in teamcity I doubt it will be easily reproducible. This is the first build that I've run on Ubuntu 15.04 though.
  • David BetzDavid Betz Posts: 14,511
    edited 2015-04-28 05:27
    Can you post the build log including the command lines?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-28 06:29
    soon as i get home tonight, yea
  • David BetzDavid Betz Posts: 14,511
    edited 2015-04-28 07:47
    soon as i get home tonight, yea
    Actually, I guess I can log into TeamCity and get it myself, right?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-28 08:10
    I should have clarrified, I'm getting this error only on my local machine. TeamCity is still building correctly with the latest build of PropGCC4.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-28 15:35
    Ah, turns it out it wasn't a problem in the first place. I had an existing build directory and didn't think to clean it out before attempting to build from the new OS. Once I cleared the build directory and rebuilt, it was fine.

    It is interesting that Steve's name and his personal build directory shows up in the debug output though...
  • jazzedjazzed Posts: 11,803
    edited 2015-04-29 08:00
    David Betz wrote: »

    Hi

    These links from post 1 don't work for me with wget.

    Amazingly the gcc4 Win32 link from post 237 seems to work.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-29 08:56
    @David Betz,

    Looks like when you copied/pasted the contents, you copied and pasted the ellipsis too, instead of the full URLs.
  • David BetzDavid Betz Posts: 14,511
    edited 2015-04-29 09:51
    @David Betz,

    Looks like when you copied/pasted the contents, you copied and pasted the ellipsis too, instead of the full URLs.
    I just copied it from your message and pasted it into the top post. Can you send me the real URLs?
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-29 17:56
    Here ya go
    [noparse]GCC4
    [url=http://david.zemon.name:8111/repository/download/PropGCC5_Gcc4linuxX64/.lastSuccessful/propellergcc-alpha_v1_9_0-gcc4-linux-x64.tar.gz?guest=1]x86-64 Linux[/url]
    [url=http://david.zemon.name:8111/repository/download/PropGCC5_Gcc4rpi/.lastSuccessful/propellergcc-alpha_v1_9_0-gcc4-rpi.tar.gz?guest=1]RPi[/url]
    [url=http://david.zemon.name:8111/repository/download/PropGCC5_Gcc4win32/.lastSuccessful/propellergcc-alpha_v1_9_0-gcc4-win32.zip?guest=1]Win32[/url]
    
    GCC5
    [url=http://david.zemon.name:8111/repository/download/PropGCC5_Gcc5linuxX64/.lastSuccessful/propellergcc-alpha_v1_9_0-gcc5-linux-x64.tar.gz?guest=1]x86-64 Linux[/url]
    [url=http://david.zemon.name:8111/repository/download/PropGCC5_Gcc5rpi/.lastSuccessful/propellergcc-alpha_v1_9_0-gcc5-rpi.tar.gz?guest=1]RPi[/url]
    [url=http://david.zemon.name:8111/repository/download/PropGCC5_Gcc5win32/.lastSuccessful/propellergcc-alpha_v1_9_0-gcc5-win32.zip?guest=1]Win32[/url][/noparse]
    
  • SRLMSRLM Posts: 5,045
    edited 2015-04-29 18:16
    You could also use the [noparse][noparse][/noparse] tag. eg

    [noparse]
    GCC4
    x86-64 Linux
    RPi
    Win32

    GCC5
    x86-64 Linux
    RPi
    Win32
    [/noparse]
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-04-29 19:41
    Thanks. I figured there had to be some way to do that
  • David BetzDavid Betz Posts: 14,511
    edited 2015-04-29 19:46
    SRLM wrote: »
    You could also use the [noparse][noparse][/noparse] tag. eg

    [noparse]
    GCC4
    x86-64 Linux
    RPi
    Win32

    GCC5
    x86-64 Linux
    RPi
    Win32
    [/noparse]
    Thanks! I just updated the top post with those links.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-06-28 20:18
    the TeamCity build has been busted for a while now and I finally have a hint as to why. spin2cpp has been downloaded into a out-of-source directory. I'm guessing this is something weird and specific to TeamCity, not the git or build configuration, but wanted to check with you all first. Here's a snippet from the log:
    [22:00:30] :	 [Step 3/6] make[1]: Leaving directory `/var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/71b5f7d6548ebb35/openspin'
    [22:00:30] :	 [Step 3/6] Installing openspin
    [22:00:30] :	 [Step 3/6] Building spin2cpp
    [22:00:30] :	 [Step 3/6] make[1]: Entering directory `/var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/71b5f7d6548ebb35/spin2cpp'
    [22:00:30] :	 [Step 3/6] mkdir -p /var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp
    [22:00:30] :	 [Step 3/6] bison -t -b /var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp/spin -d spin.y
    [22:00:30] :	 [Step 3/6] gcc -g -Wall -Werror -I. -I/var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp -o /var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp/symbol.o -c symbol.c
    [22:00:30] :	 [Step 3/6] gcc -g -Wall -Werror -I. -I/var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp -o /var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp/ast.o -c ast.c
    [22:00:30] :	 [Step 3/6] gcc -g -Wall -Werror -I. -I/var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp -o /var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp/expr.o -c expr.c
    [22:00:30] :	 [Step 3/6] gcc -g -Wall -Werror -I. -I/var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp -o /var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp/flexbuf.o -c flexbuf.c
    [22:00:30] :	 [Step 3/6] gcc -g -Wall -Werror -I. -I/var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp -o /var/www/vhosts/david.zemon.name/TeamCity/buildAgent/work/propeller-gcc4-build/spin2cpp/preprocess.o -c preprocess.c
    [22:00:30]W:	 [Step 3/6] In file included from spinc.h:19:0,
    [22:00:30]W:	 [Step 3/6]                  from ast.c:7:
    [22:00:30]W:	 [Step 3/6] lexer.h:6:22: fatal error: spin.tab.h: No such file or directory
    [22:00:30]W:	 [Step 3/6]  #include "spin.tab.h"
    [22:00:30]W:	 [Step 3/6]                       ^
    [22:00:30]W:	 [Step 3/6] compilation terminated.
    

    Specifically, I would not expect the directory from line 4 to be different from line 5.
  • The spin.tab.h issue was related to parallel jobs. The makefile looks solid to me, so I'm not sure why too many concurrent jobs had it failing, but removing the -j option entirely has fixed it. Builds take 30 minutes now, but I guess that's better than failing 100% of the time.
    Cross compiling no longer works. The build relies on libexpat which isn't readily available as a Windows or ARM lib. Is the library really needed, or was its inclusion an accident? If needed, how can I make it visible to the system?
  • What relies on libexpat? Is it spin2cpp? Maybe Eric can answer that.
  • I've found the dependency issue in spin2cpp that caused the build to fail with parallel jobs. Issue report created: https://github.com/totalspectrum/spin2cpp/issues/3
  • FastrobotFastrobot Posts: 51
    edited 2015-10-13 01:35
    gdb needs a curses package to do terminal formatting. ncurses is the standard (highly desired) package on most linux systems. It shouldn't be part of the source code package, because it's a shared library dependency that is expected to be supplied by the OS.

    Usually, pkg-config, should be able to find a working/installed version of either curses or ncurses on your system when a gnu ./configure script is run. If it can't then sometimes broken make scripts do things like you are seeing.
  • David Betz wrote: »
    What relies on libexpat? Is it spin2cpp? Maybe Eric can answer that.

    This is still an issue :(
  • TorTor Posts: 2,010
    libexpat is an XML parser library, is XML parsing a part of this?
  • Fastrobot wrote: »
    gdb needs a curses package to do terminal formatting. ncurses is the standard (highly desired) package on most linux systems. It shouldn't be part of the source code package, because it's a shared library dependency that is expected to be supplied by the OS.

    Usually, pkg-config, should be able to find a working/installed version of either curses or ncurses on your system when a gnu ./configure script is run. If it can't then sometimes broken make scripts do things like you are seeing.

    We provide ncurses sources because some cross-compilers (particularly those targeting the Raspberry Pi) do not have curses libraries available. It's not a problem for native builds, so if you don't ever want to cross compile then you don't need to worry about it.

  • David Betz wrote: »
    What relies on libexpat? Is it spin2cpp? Maybe Eric can answer that.

    This is still an issue :(

    spin2cpp certainly doesn't need libexpat. I think gdb is the only part of the propgcc system that needs it -- gdb uses xml for some configuration files for embedded systems. If you skip building gdb then you can probably avoid expat.
  • ersmith wrote: »
    David Betz wrote: »
    What relies on libexpat? Is it spin2cpp? Maybe Eric can answer that.

    This is still an issue :(

    spin2cpp certainly doesn't need libexpat. I think gdb is the only part of the propgcc system that needs it -- gdb uses xml for some configuration files for embedded systems. If you skip building gdb then you can probably avoid expat.

    Good to know, but we don't want to skip building GDB do we?
  • Builds from my build server don't include the tweak/patch version in the version string. For instance, the --version output gives:
    dzweb@davidzemonname:~$ propgcc4-bin/bin/propeller-elf-gcc --version
    propeller-elf-gcc (propellergcc-alpha_v1_9_0_) 4.6.1
    Copyright (C) 2011 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.
    

    That's no good! :(
    Anyone mind pointing me in the right direction for getting that added to the build?
Sign In or Register to comment.