adapteva / epiphany-sdk

Epiphany SDK build scripts (start here!)
GNU General Public License v3.0
125 stars 35 forks source link

Allow cloning twice (or update cloned repos) #40

Closed snim2 closed 9 years ago

snim2 commented 9 years ago

If I run a ./build-epiphany-sdk.sh job more than once I get errors like this:

fatal: destination path 'parallella-linux' already exists and is not an empty directory.

This error is thrown by git when cloning the parallella-linux repository. I have fixed this in the shell script in a quick 'n' dirty way (by moving the old copy of parallella-linux if it exists, around line 243 of the script), but it would make the script quicker and cleaner to check whether the repos have been pulled and update them, rather than cloning each time (or alternatively use git submodules).

olajep commented 9 years ago

It is annoying and should be fixed, yes. But does it break the build for you?

In that case what arguments are you passing in to build-epiphany-sdk.sh ?

// Ola

snim2 commented 9 years ago

It does break the build for me, yes. I think the directory structure was:

..buildroot/
    parallella-linux
    gcc 
    ...
    sdk/
        build-epiphany-sdk.sh
        ...

and the command line switch was ./sdk/build-epiphany-sdk.sh -a x86_64.

olajep commented 9 years ago

Ok, which branch is this on?

On 2015-02-11 09:40, Sarah Mount wrote:

It does break the build for me, yes. I think the directory structure was:

..buildroot/ parallella-linux gcc ... sdk/ build-epiphany-sdk.sh ...

and the command line switch was |./sdk/build-epiphany-sdk.sh -a x86_64|.

— Reply to this email directly or view it on GitHub https://github.com/adapteva/epiphany-sdk/issues/40#issuecomment-73848465.

snim2 commented 9 years ago

Unfortunately I deleted the copy of the repo I was working with and downloaded the tar that is mentioned in the README, so I can't run git branch --list to check for you. However, I think it was 2014.11. I'll try again and see if I can verify (might take a few hours).

snim2 commented 9 years ago

OK, I have had another go, from a fresh clone of this repo.

The first time I ran the build like this:

$ git branch --list
* 2014.11
$ cd ..
$ ./sdk/build-epiphany-sdk.sh -a x86_64
...

the multicore simulator failed to build and when I ran the build script again to try and replicate the issue with cloning, I got the same error, which was (from a tail of the log):

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/snim2/buildroot/gdb-multicore-sim/bfd -I. -I/home/snim2/buildroot/gdb-multicore-sim/bfd -I/home/snim2/buildroot/gdb-multicore-sim/bfd/../include -DHAVE_bfd_elf32_epiphany_vec -DHAVE_bfd_elf32_little_generic_vec -DHAVE_bfd_elf32_big_generic_vec -DBINDIR=\"/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim-install/bin\" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -pthread -lrt -fPIC -fvisibility=hidden -MT targets.lo -MD -MP -MF .deps/targets.Tpo -c -DDEFAULT_VECTOR=bfd_elf32_epiphany_vec "-DSELECT_VECS=&bfd_elf32_epiphany_vec,&bfd_elf32_little_generic_vec,&bfd_elf32_big_generic_vec" "-DSELECT_ARCHITECTURES=&bfd_epiphany_arch" /home/snim2/buildroot/gdb-multicore-sim/bfd/targets.c -o targets.o
Makefile:1607: recipe for target 'opncls.lo' failed
make[3]: *** [opncls.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
mv -f .deps/section.Tpo .deps/section.Plo
mv -f .deps/syms.Tpo .deps/syms.Plo
mv -f .deps/reloc.Tpo .deps/reloc.Plo
mv -f .deps/targets.Tpo .deps/targets.Plo
mv -f .deps/hash.Tpo .deps/hash.Plo
make[3]: Leaving directory '/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim/bfd'
Makefile:1649: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim/bfd'
Makefile:1135: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim/bfd'
Makefile:2578: recipe for target 'all-bfd' failed
make: *** [all-bfd] Error 2
Error: Epiphany multicore simulator build failed.

So, that wasn't very helpful :(

I notice that this is also the same problem as I experienced with the Docker image @philipz created, documented here:

https://parallella.org/forums/viewtopic.php?f=13&t=2123&sid=277e8f60289d36c1d06a25d57262434c#p12584

olajep commented 9 years ago

On 2015-02-11 10:13, Sarah Mount wrote:

OK, I have had another go, from a fresh clone of this repo.

The first time I ran the build like this:

$ git branch --list

  • 2014.11 $cd .. $ ./sdk/build-epiphany-sdk.sh -a x86_64 ...

the multicore simulator failed to build and when I ran the build script again to try and replicate the issue with cloning, I got the same error, which was (from a tail of the log):

libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/snim2/buildroot/gdb-multicore-sim/bfd -I. -I/home/snim2/buildroot/gdb-multicore-sim/bfd -I/home/snim2/buildroot/gdb-multicore-sim/bfd/../include -DHAVE_bfd_elf32_epiphany_vec -DHAVE_bfd_elf32_little_generic_vec -DHAVE_bfd_elf32_big_generic_vec -DBINDIR=\"/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim-install/bin\" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -pthread -lrt -fPIC -fvisibility=hidden -MT targets.lo -MD -MP -MF .deps/targets.Tpo -c -DDEFAULT_VECTOR=bfd_elf32_epiphany_vec"-DSELECT_VECS=&bfd_elf32_epiphany_vec,&bfd_elf32_little_generic_vec,&bfd_elf32_big_generic_vec" "-DSELECT_ARCHITECTURES=&bfd_epiphany_arch" /home/snim2/buildroot/gdb-multicore-sim/bfd/targets.c -o targets.o Makefile:1607: recipefor target 'opncls.lo' failed make[3]:* [opncls.lo] Error 1 make[3]:* Waitingfor unfinished jobs.... mv -f .deps/section.Tpo .deps/section.Plo mv -f .deps/syms.Tpo .deps/syms.Plo mv -f .deps/reloc.Tpo .deps/reloc.Plo mv -f .deps/targets.Tpo .deps/targets.Plo mv -f .deps/hash.Tpo .deps/hash.Plo make[3]: Leaving directory'/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim/bfd' Makefile:1649: recipefor target 'all-recursive' failed make[2]:* [all-recursive] Error 1 make[2]: Leaving directory'/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim/bfd' Makefile:1135: recipefor target 'all' failed make[1]:* [all] Error 2 make[1]: Leaving directory'/home/snim2/buildroot/builds/bd-x86_64-2014.11-gdb-multicore-sim/bfd' Makefile:2578: recipefor target 'all-bfd' failed make:*\ [all-bfd] Error 2 Error: Epiphany multicore simulator build failed. That is fixed in both 2015.1 and master. You need to add ${config_extra} to the configure options for muticore sim. https://github.com/adapteva/epiphany-sdk/commit/1527b5aa4e052f419eff4c3a71854b4953cda7b2

So, that wasn't very helpful :(

I notice that this is also the same problem as I experienced with the Docker image @philipz https://github.com/philipz created, documented here:

https://parallella.org/forums/viewtopic.php?f=13&t=2123&sid=277e8f60289d36c1d06a25d57262434c#p12584

— Reply to this email directly or view it on GitHub https://github.com/adapteva/epiphany-sdk/issues/40#issuecomment-73851839.

philipz commented 9 years ago

@snim2 , I will try to use master version to build docker images. And, @olajep , thanks for your info. :+1:

olajep commented 9 years ago

I recommend you stick with 2014.11 and add ${config_extra} by hand. master is the development branch and 2015.1 needs a new FPGA bitstream and kernel.

snim2 commented 9 years ago

OK, I tried running build-epiphany-sdk.sh twice again on the master branch and that didn't break the build either, so I guess that whatever I was seeing has already been fixed somewhere.

olajep commented 9 years ago

Closing this since it seems to be fixed. Feel free to reopen if needed.

// Ola