Giter Site home page Giter Site logo

bigbrownbuild-git's People

Contributors

ggnkua avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

paulwratt

bigbrownbuild-git's Issues

Add texinfo to prerequisites

Just to let you know I ran into troubles building binutils 0.39 on Atlassian CI Linux image (Ubuntu Feisty-something-whatever). bigbrownbuild.sh script failed, because during binutils compilation texinfo was required, but missing in system (I reran make in binutils folder to catch this error). Installing texinfo fixed problem (apt-get install texinfo), so it would be cool to add it to prerquisities list.

Issue building barebones

First of all, I'd like to say that I'm really glad that this project exists.

After successfully running bigbrownbuild.sh, I tried to do make in the barebones directory.

This however, led to the following error:

/brown/bin/m68k-atariextrabrowner-elf-gcc -c -m68000 -Ofast -fomit-frame-pointer -fstrict-aliasing -fcaller-saves -flto
     -ffunction-sections -fdata-sections -fleading-underscore -D__ATARI__ -D__M68000__ -DELF_CONFIG_STACK=16384
     -Wall -o vsnprint.o vsnprint.c
make: /brown/bin/m68k-atariextrabrowner-elf-gcc: Command not found
make: *** [Makefile:233: vsnprint.o] Error 127

After checking the /brown/bin directory, I found that the binaries were all called m68k-atarisuperbrowner-* instead.

So I naively updated the Makefile to refer to super instead of extra.

This led to another error:

/brown/bin/m68k-atarisuperbrowner-elf-g++ -c -m68000 -Ofast -fomit-frame-pointer -fstrict-aliasing -fcaller-saves -flto -ffunction-sections -fdata-sections -fleading-underscore -D__ATARI__ -D__M68000__ -DELF_CONFIG_STACK=16384   -x c++ -std=c++0x -fno-exceptions -fno-rtti -fno-threadsafe-statics -Wall -Wno-reorder -o lolworld.o lolworld.cpp
/brown/bin/m68k-atarisuperbrowner-elf-g++ -L/brown/lib/gcc/m68k-atarisuperbrowner-elf/10.2.0/m68000 -L/brownm68k-atarisuperbrowner-elf/lib/m68000 -o lolworld.elf  libcxx/brownboot.o libcxx/browncrti.o libcxx/browncrt++.o libcxx/zerolibc.o libcxx/zerocrtfini.o vsnprint.o printf.o  lolworld.o -Wl,-Map,lolworld.map -Wl,--emit-relocs -Wl,-e_start -Ttext=0 -nostdlib -nostartfiles -m68000 -Ofast -fomit-frame-pointer -fstrict-aliasing -fcaller-saves -flto -ffunction-sections -fdata-sections -fleading-underscore  libcxx/browncrtn.o
lto1: fatal error: bytecode stream in file 'libcxx/browncrt++.o' generated with LTO version 9.0 instead of the expected 11.0
compilation terminated.
lto-wrapper: fatal error: /brown/bin/m68k-atarisuperbrowner-elf-g++ returned 1 exit status
compilation terminated.
/brown/lib/gcc/m68k-atarisuperbrowner-elf/11.2.0/../../../../m68k-atarisuperbrowner-elf/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make: *** [Makefile:188: lolworld.elf] Error 1
rm lolworld.o

Apparently LTO version 9.0 is being used instead of the expected 11.0.

I have no idea how to fix this. Do you have any ideas? Thanks!

13.1.0, 13.2.0 and Trunk binutils version

starting at line 216 in bigbrownbuild.sh:

        if [ "$BUILD_13_1_0" == "1" ] || [ "$BUILD_TRUNK" == "1" ]; then
            if [ ! -f binutils-2.40.tar.xz ]; then rm -rf binutils-2.40; fi; fi
        if [ "$BUILD_13_2_0" == "1" ] || [ "$BUILD_TRUNK" == "1" ]; then
            if [ ! -f binutils-2.40.tar.xz ]; then rm -rf binutils-2.41; fi; fi

and based on line 271 & 272:

    if [ "$BUILD_13_1_0" == "1" ]; then
        if [ ! -f binutils-2.40.tar.xz ]; then wget http://ftp.gnu.org/gnu/binutils/binutils-2.40.tar.xz --quiet; fi; fi
    if [ "$BUILD_13_2_0" == "1" ] || [ "$BUILD_TRUNK" == "1" ]; then
        if [ ! -f binutils-2.41.tar.xz ]; then wget http://ftp.gnu.org/gnu/binutils/binutils-2.41.tar.xz --quiet; fi; fi

shouldn't that first piece of code end:

        if [ "$BUILD_13_1_0" == "1" ]; then
            if [ ! -f binutils-2.40.tar.xz ]; then rm -rf binutils-2.40; fi; fi
        if [ "$BUILD_13_2_0" == "1" ] || [ "$BUILD_TRUNK" == "1" ]; then
            if [ ! -f binutils-2.41.tar.xz ]; then rm -rf binutils-2.41; fi; fi

macOS feedback

Many thanks for this project as well!

After a few tries, I'm now able to build and run the barebones examples on Hatari.

I'm a Mac user so I thought I'd share some feedback.

My setup:

OS: macOS 11.6 20G165 x86_64
Host: MacBookPro16,1
Shell: zsh 5.8
CPU: Intel i9-9980HK (16) @ 2.40GHz

Portable install

I wanted to have a portable install with the whole toolchain created in a brown subfolder of the repository.

INSTALL_PREFIX is set to /brown when the script is ran in User mode but I doubt creation of folders will be allowed in / without privileges. It is certainly not allowed on macOS so I changed it to $HOMEDIR/brown.

I also modified barebones/Makefile in order to use the portable ../brown installation instead of /brown.

Using Homebrew

I wanted to avoid usage of sudo at all cost. This is one of the reason I'm using Homebrew instead of MacPorts.

So I had to install:

  • wget (suggestion: using curl which is bundled with macOS)
  • gnu-sed (note the different package name).

gmp was already installed but this might be because of previous other package installations. It is, however, in a different directory (/usr/local/include/gmp) so I modified this line in your script:

$SED -i -e "s/<gmp.h>/\"\/usr\/local\/include\/gmp.h\"/gI" "$HOMEDIR"/gcc-$1/gcc/system.h 

mpfr and libmpc are not installed on my system but this wasn't an issue, apparently.

The Apple provided bison, flex, tar were used without any issue.


That's it! Thanks again for your work!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.