Building MME_Tests with an 8core host with 16GB of RAM sometimes
exhausts the whole available RAM, triggering the OOM killer.
Let's increase the variable to generate 8 C++ files for each TTCN3
files, in order to avoid consuming so much memory.
Change-Id: If5f54e18384f8a26b281d057e9d9f5c450566422
Make all regen_makefile.sh more readable and diff friendly by moving
each entry in FILES and CPPFLAGS_TTCN3 into separate lines. Order
entries alphabetically.
Related: OS#5252
Change-Id: I6b6866eb9f6ec6232e4ae434517457a4c8c1c050
Prepare to make osmo-ttcn3-hacks.git work with eclipse-titan 8.0.0,
where "ttcn3_makefilegen -v" does not have a "Product number" anymore.
Fix for:
../regen-makefile.sh: 54: ../regen-makefile.sh: arithmetic expression: expecting primary: " >= 65"
Related: OS#5252
Related: If9fef29ce243be112d3735f0236335197f8f140f
Change-Id: Iec26eafc1ddfa19bc1224f6f2abb7fb35cfc188d
Additional libraries to be linked should be in LINUX_LIBS (appended at
the end of the linker command), not part of LDFLAGS (prepended to
the beginning of the linker command).
On binutils 2.35.1 / Debian unstable, without this patch, I get
/usr/bin/ld: IPL4asp_PT.so: undefined reference to `sctp_bindx'
/usr/bin/ld: IPL4asp_PT.so: undefined reference to `sctp_connectx'
which is resolved by this patch
Change-Id: I8a339076f445e3c650e407ae982c7c2dc4a760b2
The license of the build or execution scripts doesn't affect the license
of the actual program, and we want to explicitly state that these scripts may
be used in any kind of context.
Change-Id: I553925cd88b05903aab52ae1afb093aa9ab9d035
Particularly the C++ files generated for the rather comprehensive
3GPP asn.1 specified protocols like MAP, RANAP, ... result in very
large source files and subsequently g++ processes that consume well
into the multiple gigabyte range of memory.
Let's use the '-U 5' option to ask the ttcn3_compiler to split all
c++ files into 5 chunks, resulting in more files to compile, but
smaller individual files.
I also tested '-U type' before, but it was still grinding my 16GB RAM
laptop to unusable deep-swapping state when running 'make -j8' for
the IuCS extended MSC test suite.
Change-Id: I013b623e98d58a39dd7bb2b0db4a911725028535
Newer eclipse-titan makefilegen already sets CPPFLAGS like this:
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include$(TTCN3_SUBDIR)
where TTCN3_SUBDIR expands to '/titan' and TTCN3_DIR to '/usr'
If we add /titan after include we end up with
-I/usr/include/titan/titan/ which will cause the compile to fail due to
a missing TTCN3.hh include.
Check the titan version so we retain backwards compatibility.
Change-Id: If9fef29ce243be112d3735f0236335197f8f140f
Related: OS#3179
Sponsored-by: On-Waves ehf.
There seems to be no option for ttcn3_makefilegen to disable generated
code warnings so the only way to clear output from useless warnings
about indentation and such is to manually strip -Wall using sed.
Change-Id: I7ef141f7f3370a1bf909845ce8a4eb650b33fa81
This makes it easier to track when this workaround can be disabled once
Debian/upstream (hopefully) resolve the issue.
Change-Id: I3c4ed0ae5c1145f162b2745f4a46705b51874b5b
By default, if ccache is found in PATH when regen-makefile.sh runs,
use cached compiled C++ object files during the build (or populate
the cache in case an object is not cached yet). Objects are cached
in ccache's default cache directory (~/.ccache) unless overriden by
the CCACHE_DIR environment variable.
The USE_CCACHE environment variable overrides auto-detection
in regen-makefile.sh and disables (USE_CCACHE=0) or enables
(USE_CCACHE=1) use of ccache.
Rebuilding the test suite from scratch with a populated cache
is an order of magnitude faster than doing an initial build.
ccache only speeds up C++ (.cc) to object file (.o) compilation.
Linking object (.o) files into shared object (.so) files is still
performed by the real compiler during every build.
Change-Id: Ibb538f602206535c06980f88191c1dabe3c4cd82
Let's use the preprocessor to avoid IPA_Emulation pulling *all*
dependencies into each and any of our projects. The code readability
suffers a bit from the many #ifdefs, but compilation speed increases
if we don't have to pull in all those (recursive) dependencies.
After all, a BTS test case will never need SCCP, GSUP or MGCP.
Change-Id: Ic0231adbd2171214de133d26b3fbf36130ee8aa0
By default the build fails on Debian due to gcc version check in
/usr/include/titan/cversion.h - instead of asking users to manually
change this file let's add workaround to our makefile fixer which
disables this check automatically.
The corresponding Debian bug:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879816
Change-Id: I71c765d5d8e182a198e2c5d2886ebce3b86e6328