Shop OBEX P1 Docs P2 Docs Learn Events
Loader Bug Fixed — Parallax Forums

Loader Bug Fixed

jazzedjazzed Posts: 11,803
edited 2011-11-10 22:32 in Propeller 1
We found and fixed a loader bug today.

I was working on a program that I'll post separately, and ran out of room for LMM code.
So then I switched to building the program with XMMC, but then the loader said it was twice as big.
Gee, how could that be? Not supposed to happen!

To make a long story short, the loader misunderstood the size of the image, but it's fixed for next release.

Why is this significant? Well, the xbasic demo program for example now runs from a 64KB EEPROM !

That means it will work on many of the boards Parallax sells without adding special external memory.
Other programs that were just a little too big will work too.

Of course running the main program from EEPROM will be slow, but any related COG code will go full speed.


Here's a list of Parallax boards that have 64KB+ of EEPROM and other XMM features:

Parallax Propeller C3
Parallax PropBOE
Parallax QuickStart + Human Interface
Parallax PropProto Board 64K EEPROM
Parallax QuickStart Board 64K EEPROM
Parallax Hydra with 128K EEPROM
Parallax Backpack with 64K EEPROM
Parallax P8X32A-Q44 SchmartBoard Kit
Parallax Spinneret Web Server

Cheers.
--Steve

Comments

  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-08 21:04
    Any chance you could PM that new loader? I'm not having any success rebuilding from hg.
  • David BetzDavid Betz Posts: 14,516
    edited 2011-11-08 21:57
    Hi Martin,

    What sorts of problems are you having building the loader? I've built it successfully on a Mac and I believe Steve has built it under Linux and Windows/Cygwin. What platform are you using and what sorts of problems are you having? I'd like to fix any build problems before our next release.

    Thanks,
    David

    P.S. I just ordered one of your ASC+ boards to use with a MIDI shield that I bought from Sparkfun. I'm looking forward to working with the ASC+. It looks like a nice board!
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-08 23:47
    This is where the build stopped:
    gcc -DHAVE_CONFIG_H -I. -I../../../propgcc/binutils/gas  -I. -I../../../propgcc/binutils/gas -I../bfd -I../../../propgcc/binutils/gas/config -I../../../propgcc/binutils/gas/../include -I../../../propgcc/binutils/gas/.. -I../../../propgcc/binutils/gas/../bfd -DLOCALEDIR="\"/usr/local/propeller/share/locale\""  -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT tc-propeller.o -MD -MP -MF .deps/tc-propeller.Tpo -c -o tc-propeller.o `test -f 'config/tc-propeller.c' || echo '../../../propgcc/binutils/gas/'`config/tc-propeller.c
    ../../../propgcc/binutils/gas/config/tc-propeller.c: In function ‘pseudo_fit’:
    ../../../propgcc/binutils/gas/config/tc-propeller.c:340:7: error: variable ‘temp’ set but not used [-Werror=unused-but-set-variable]
    ../../../propgcc/binutils/gas/config/tc-propeller.c: In function ‘md_assemble’:
    ../../../propgcc/binutils/gas/config/tc-propeller.c:596:7: error: variable ‘integer_reloc’ set but not used [-Werror=unused-but-set-variable]
    cc1: all warnings being treated as errors
    
    make[4]: *** [tc-propeller.o] Error 1
    make[4]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[1]: *** [all-gas] Error 2
    make[1]: Leaving directory `/usr/local/src/build/binutils'
    make: *** [all] Error 2
    binutils make failed.
    

    Fedora 15
    kernel-2.6.40.6-0.fc15.x86_64
    gcc-4.6.1-9.fc15.x86_64
    make-3.82-4.fc15.x86_64
    glibc-2.14-5.x86_64
  • David BetzDavid Betz Posts: 14,516
    edited 2011-11-09 04:09
    This is where the build stopped:
    gcc -DHAVE_CONFIG_H -I. -I../../../propgcc/binutils/gas  -I. -I../../../propgcc/binutils/gas -I../bfd -I../../../propgcc/binutils/gas/config -I../../../propgcc/binutils/gas/../include -I../../../propgcc/binutils/gas/.. -I../../../propgcc/binutils/gas/../bfd -DLOCALEDIR="\"/usr/local/propeller/share/locale\""  -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT tc-propeller.o -MD -MP -MF .deps/tc-propeller.Tpo -c -o tc-propeller.o `test -f 'config/tc-propeller.c' || echo '../../../propgcc/binutils/gas/'`config/tc-propeller.c
    ../../../propgcc/binutils/gas/config/tc-propeller.c: In function ‘pseudo_fit’:
    ../../../propgcc/binutils/gas/config/tc-propeller.c:340:7: error: variable ‘temp’ set but not used [-Werror=unused-but-set-variable]
    ../../../propgcc/binutils/gas/config/tc-propeller.c: In function ‘md_assemble’:
    ../../../propgcc/binutils/gas/config/tc-propeller.c:596:7: error: variable ‘integer_reloc’ set but not used [-Werror=unused-but-set-variable]
    cc1: all warnings being treated as errors
    
    make[4]: *** [tc-propeller.o] Error 1
    make[4]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[1]: *** [all-gas] Error 2
    make[1]: Leaving directory `/usr/local/src/build/binutils'
    make: *** [all] Error 2
    binutils make failed.
    

    Fedora 15
    kernel-2.6.40.6-0.fc15.x86_64
    gcc-4.6.1-9.fc15.x86_64
    make-3.82-4.fc15.x86_64
    glibc-2.14-5.x86_64
    That is a problem with building the gas assembler. Ken or Eric will have to address that. However, you can build propeller-load by itself if you want. Just do this:
    cd propgcc/loader
    make
    make install
    
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-09 07:26
    [root@fedora loader]# make
    src/propeller-load.c: In function ‘main’:
    src/propeller-load.c:68:16: error: ‘DEF_PORT’ undeclared (first use in this function)
    src/propeller-load.c:68:16: note: each undeclared identifier is reported only once for each function it appears in
    make: *** [obj//propeller-load.o] Error 1
    


    btw, thanks for the order! Every little bit helps in this economy! I have not tested that shield so I'm interested in seeing how it works.
  • David BetzDavid Betz Posts: 14,516
    edited 2011-11-09 07:29
    [root@fedora loader]# make
    src/propeller-load.c: In function ‘main’:
    src/propeller-load.c:68:16: error: ‘DEF_PORT’ undeclared (first use in this function)
    src/propeller-load.c:68:16: note: each undeclared identifier is reported only once for each function it appears in
    make: *** [obj//propeller-load.o] Error 1
    


    btw, thanks for the order! Every little bit helps in this economy! I have not tested that shield so I'm interested in seeing how it works.
    Darn! I forgot about that. Add the following step before 'make':
    source setenv.linux
    

    This is a bit of a pain. The only thing it uses DEF_PORT for is to set the default port if you don't specify a -p option on the command line and don't have PROPELLER_LOAD_PORT set.
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-09 07:35
    Ah, figured out I have to "source setenv.linux" first.

    -edit-
    Oops, cross post. ;)

    -edit-
    Now I'm getting "make: bstc.linux: Command not found"

    -edit-
    fixed that by modifying $PATH but now it's trying to use propeller-elf-gcc, which doesn't exist yet at this part of the build.
  • jazzedjazzed Posts: 11,803
    edited 2011-11-09 08:32
    Ah, figured out I have to "source setenv.linux" first.

    -edit-
    Oops, cross post. ;)

    -edit-
    Now I'm getting "make: bstc.linux: Command not found"

    -edit-
    fixed that by modifying $PATH but now it's trying to use propeller-elf-gcc, which doesn't exist yet at this part of the build.
    There is also that build.sh script :)

    If you take the sd-loader build step out of the Makefile, You can build the loader with just native gcc and bstc.

    Find "sd-loader" and comment it:

    .PHONY: sd-loader
    #sd-loader: $(DRVDIR)
    # $(MAKE) -C sdloader TARGET=$(realpath $(TARGET))
  • jazzedjazzed Posts: 11,803
    edited 2011-11-09 08:41
    Frank ran into this issue also on FC 15. I didn't follow up. Sorry about that.
    These are warnings being treated as errors. I have no idea why it would only happen on FC 15.
    We will file an Issue on propgcc.

    Thanks,
    --Steve

    This is where the build stopped:
    gcc -DHAVE_CONFIG_H -I. -I../../../propgcc/binutils/gas  -I. -I../../../propgcc/binutils/gas -I../bfd -I../../../propgcc/binutils/gas/config -I../../../propgcc/binutils/gas/../include -I../../../propgcc/binutils/gas/.. -I../../../propgcc/binutils/gas/../bfd -DLOCALEDIR="\"/usr/local/propeller/share/locale\""  -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT tc-propeller.o -MD -MP -MF .deps/tc-propeller.Tpo -c -o tc-propeller.o `test -f 'config/tc-propeller.c' || echo '../../../propgcc/binutils/gas/'`config/tc-propeller.c
    ../../../propgcc/binutils/gas/config/tc-propeller.c: In function ‘pseudo_fit’:
    ../../../propgcc/binutils/gas/config/tc-propeller.c:340:7: error: variable ‘temp’ set but not used [-Werror=unused-but-set-variable]
    ../../../propgcc/binutils/gas/config/tc-propeller.c: In function ‘md_assemble’:
    ../../../propgcc/binutils/gas/config/tc-propeller.c:596:7: error: variable ‘integer_reloc’ set but not used [-Werror=unused-but-set-variable]
    cc1: all warnings being treated as errors
    
    make[4]: *** [tc-propeller.o] Error 1
    make[4]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/usr/local/src/build/binutils/gas'
    make[1]: *** [all-gas] Error 2
    make[1]: Leaving directory `/usr/local/src/build/binutils'
    make: *** [all] Error 2
    binutils make failed.
    

    Fedora 15
    kernel-2.6.40.6-0.fc15.x86_64
    gcc-4.6.1-9.fc15.x86_64
    make-3.82-4.fc15.x86_64
    glibc-2.14-5.x86_64

    Issue submitted: http://code.google.com/p/propgcc/issues/detail?id=7
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-09 08:59
    Thanks, jazzed. That fixed me up.
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-09 09:14
    jazzed wrote: »
    Frank ran into this issue also on FC 15. I didn't follow up. Sorry about that.
    These are warnings being treated as errors. I have no idea why it would only happen on FC 15.
    We will file an Issue on propgcc.

    I was able to fudge it by commenting out those dead-end vars from tc-propeller.c. The build progresses much further until:
    gcc   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -DGENERATOR_FILE  -o build/gengtype \
        build/gengtype.o build/errors.o build/gengtype-lex.o build/gengtype-parse.o build/gengtype-state.o build/version.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
    build/gengtype.o: In function `adjust_field_type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1264: undefined reference to `lexer_line'
    build/gengtype.o: In function `adjust_field_rtx_def':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:978: undefined reference to `lexer_line'
    build/gengtype.o: In function `adjust_field_type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1279: undefined reference to `lexer_line'
    build/gengtype.o: In function `adjust_field_tree_exp':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1205: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1217: undefined reference to `lexer_line'
    build/gengtype.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1032: more undefined references to `lexer_line' follow
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: more undefined references to `yylex' follow
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:722: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:793: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:793: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:754: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:754: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: more undefined references to `yylex' follow
    build/gengtype-parse.o: In function `struct_field_seq':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:688: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:778: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: more undefined references to `yylex' follow
    build/gengtype-parse.o: In function `parse_file':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:947: undefined reference to `yybegin'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `parse_file':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:982: undefined reference to `lexer_toplevel_done'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:987: undefined reference to `yyend'
    build/gengtype-parse.o: In function `extern_or_static':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:888: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `def_vec':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:914: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:915: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `def_vec_alloc':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:939: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `typedef_decl':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:838: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    collect2: ld returned 1 exit status
    make[1]: *** [build/gengtype] Error 1
    make[1]: Leaving directory `/usr/local/src/build/gcc/gcc'
    make: *** [all-gcc] Error 2
    gcc make all-gcc failed.
    

    I don't know if this second issue is related to the above fudge though. I'm just hacking at this 'cause it's fun, and posting this info in the off-chance it helps. Feel free to ignore! ;)
  • jazzedjazzed Posts: 11,803
    edited 2011-11-09 09:21
    This may be unrelated (my stupid question of the day), but do you have flex or some other lexer installed?
    Hopefully Eric will see this post and comment if necessary.
    I was able to fudge it by commenting out those dead-end vars from tc-propeller.c. The build progresses much further until:
    gcc   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -DGENERATOR_FILE  -o build/gengtype \
        build/gengtype.o build/errors.o build/gengtype-lex.o build/gengtype-parse.o build/gengtype-state.o build/version.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
    build/gengtype.o: In function `adjust_field_type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1264: undefined reference to `lexer_line'
    build/gengtype.o: In function `adjust_field_rtx_def':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:978: undefined reference to `lexer_line'
    build/gengtype.o: In function `adjust_field_type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1279: undefined reference to `lexer_line'
    build/gengtype.o: In function `adjust_field_tree_exp':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1205: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1217: undefined reference to `lexer_line'
    build/gengtype.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype.c:1032: more undefined references to `lexer_line' follow
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: more undefined references to `yylex' follow
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:722: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:793: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:793: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:754: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:754: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: more undefined references to `yylex' follow
    build/gengtype-parse.o: In function `struct_field_seq':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:688: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `type':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:778: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o:/usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: more undefined references to `yylex' follow
    build/gengtype-parse.o: In function `parse_file':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:947: undefined reference to `yybegin'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    build/gengtype-parse.o: In function `parse_file':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:982: undefined reference to `lexer_toplevel_done'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:987: undefined reference to `yyend'
    build/gengtype-parse.o: In function `extern_or_static':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:888: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `def_vec':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:914: undefined reference to `lexer_line'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:915: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `def_vec_alloc':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:939: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `typedef_decl':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:838: undefined reference to `lexer_line'
    build/gengtype-parse.o: In function `token':
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    /usr/local/src/build/gcc/gcc/../../../propgcc/gcc/gcc/gengtype-parse.c:49: undefined reference to `yylex'
    collect2: ld returned 1 exit status
    make[1]: *** [build/gengtype] Error 1
    make[1]: Leaving directory `/usr/local/src/build/gcc/gcc'
    make: *** [all-gcc] Error 2
    gcc make all-gcc failed.
    

    I don't know if this second issue is related to the above fudge though. I'm just hacking at this 'cause it's fun, and posting this info in the off-chance it helps. Feel free to ignore! ;)
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-09 10:03
    I did not have flex installed and that was the problem. Build successful on F-15!

    What I had to do:


    Install flex
    yum install flex
    


    Add two paths to PATH
    PATH=/usr/local/src/propgcc/release/:/usr/local/propeller/bin/:$PATH
    


    !!KLUDGE!! In binutils/gas/config/tc-propeller.c ; comment out "temp" in pseudo_fit() and "integer_reloc" in md_assemble() !!KLUDGE!!

    and then ./rebuild
  • jazzedjazzed Posts: 11,803
    edited 2011-11-10 08:15
    Martin, a fix for issue number 7 has been pushed to the repository. It would be wonderful if you could verify the fix.
    If you can, please use hg revert to remove your changes, and then use hg pull/update. Then rebuild.

    Thanks,
    --Steve
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-10 19:19
    The build completes as long as I don't forget to add /usr/local/propeller/bin/ to the $PATH before running rebuild. Issue 7 is fixed.
  • jazzedjazzed Posts: 11,803
    edited 2011-11-10 20:04
    Thanks Martin. This is very helpful.

    I put PATH modifications in my .bashrc. I.E.
    PATH=${PATH}:/home/steve/bin:/usr/local/propeller/bin

    PATH is mentioned here: http://code.google.com/p/propgcc/wiki/PropGccBuild

    I'm adding a note about it in the propgcc/README.txt



  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-11-10 22:32
    PATH added to .bashrc. Thanks for the tip.
Sign In or Register to comment.