Releases differences: gcc4 vs gcc5 vs gcc6

#1

I’m trying to understand the relationship between oF code structure and the different compiler options.
I downloaded these three releases:

  • of_v0.10.1_linux64gcc4_release
  • of_v0.10.1_linux64gcc5_release
  • of_v0.10.1_linux64gcc6_release

I used meld to compare the different release directories, and absolutely no differences showed up.

So I was wondering what are the actual differences between each gccX release?

#2

the binary libraries are compiled with the corresponding compiler and are only compatible with:

gcc4 with gcc 4.x.x or earlier
gcc5 with gcc 5.x.x
gcc6 with gcc 6 or greater

#3

oh you mean the precompiled libs?
yeah okay that makes sense.

however I’m still a bit confused.
the libs directory under 0.9.0 does have a bunch of precompiled code.
however the same directory under 0.10.0 does not.

So two more questions:

  • what were the project modifications that imply this difference?
  • where are the binary libs affected by different gcc versions placed?
#4

if you are working with github take a look at the INSTALL_FROM_GITHUB.md instructions in the root folder. we moved the binary libraries out of the repository and you need to run some scripts to install them now but we still use precompiled lirbaries

#5

oh cool, the script download_libs.sh takes care of it now on 0.10.0.
yeah now I guess everything is clear.

the actual reason I wanna know these info is because I’m trying to port oF into the OpenEmbedded realm. I wanted to make sure I would be able to cross-compile everything with BitBake generated toolchains in recent versions. I saw the different gcc-dependent releases for 0.10.1 and I wondered whether there would be any hard coded dependency on the source code.

I’ve been able to cross compile all the dependencies (except fmodex) from OE recipes so I think it’s going well.

So far, my focus has been on 0.9.0 and 64bit architectures. I’ve been patch-hacking the *.mk makefiles from makefileCommon, and so far I’ve managed to build core and (almost) all examples to both x86-64 and aarch64. Not epic achievements, but I guess it’s already something. Next steps will be to port addons, write a sample app recipe, and expand to different architectures.

@arturo since you’re such a major figure in the community, I’d love to hear your thoughts on this endeavour. Still not 100% where this is going as I’m doing this mostly as an exercise. But I’m sure interesting possibilities might arise in the future, especially portability to exotic architectures.