Comments (7)
forgot to specify the gcc version:
$ gcc --version
gcc (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)
from epiphany-sdk.
I think I see the problem. Here's an example. (All paths relative to unisrc-2015.1/sim)
The code is using a technique to inline functions if certain variables are defined. common/sim-arange.h shows this with
#ifdef HAVE_INLINE
#ifdef SIM_ARANGE_C
#define SIM_ARANGE_INLINE INLINE
#else
#define SIM_ARANGE_INLINE EXTERN_INLINE
#endif
#include "sim-arange.c"
#else
#define SIM_ARANGE_INLINE
#endif
#define SIM_ARANGE_C_INCLUDED
It appears that the problem with this approach is that it's possible for GCC to decide not to inline a function. If this happens, then that function is copied int every C file that includes sim-basics.h leading to it being compiled everywhere but not inlined, resulting in multiple symbol definitions that are discovered by ld, breaking the build.
I don't know what the solution is.
from epiphany-sdk.
My analysis was in error. The problem is that the meaning of 'extern inline' is different in gnu89 than it is in gnu11 and gcc 5 defaults to gnu11
https://gcc.gnu.org/gcc-5/porting_to.html describes the situation.
The solution appears to be to change the definition of FOO_INLINE to EXTERN_INLINE in foo.h and to compile with -std=gnu89
from epiphany-sdk.
I have the same problem with gcc 5.2.0. Any solutions yet?
from epiphany-sdk.
@Shadowigor
Can you please try again. Should be fixed in:
8335158
You need to cd into sdk and do a git pull to get the fix
// Ola
from epiphany-sdk.
Thank you! It works now.
from epiphany-sdk.
closing as it seems fixed.
from epiphany-sdk.
Related Issues (20)
- pull requests failing when cloning gnu tools HOT 4
- Multicore Epiphany simulator fails to build Fedora 22 / gcc (3.4 or 5.1.1) HOT 3
- the p[i] operand miss calculates the struct size HOT 2
- epiphany-examples: cpu/complex_numbers: Fails w/ devel branch + master toolchain HOT 1
- GCC emits superfluous movt r#, 0x0 instructions
- ESYS mmap failure. HOT 2
- -msmall16 not compatible with e_read() / e_write() SDK 2015.1
- unable to build ESDK 2016.3.1 for x86_64 (distro: Fedora Core 23) HOT 2
- gdb: Build with expat support HOT 2
- Should the `loader_cfg` section in Epiphany ELFs have its `ALLOC` flag set? HOT 2
- gcc: conjf suboptimal
- e-server / gdb: thread-specific breakpoint issues HOT 1
- Build Error, multiple definitions of 'xmalloc'
- Workaround to install SDK on Mint (Ubuntu based) but without gdb. HOT 2
- e-as (epiphany.cpu): mov rd,#imm16 discrepancy w/ isa documentation
- Epiphany-sdk on Freebsd HOT 4
- epiphany-libs: e-server: Regs r50-r62 aliases to r25-r37
- Error on building ESDK 2016.11 on ubuntu 16.04 HOT 2
- Freshly build gcc5 and gcc8 eSDK download HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from epiphany-sdk.