Turn modified fdlibm into Jerry's own libm
* Rename modified fdlibm to jerry-libm
* Move third-party/fdlibm to jerry-libm
* Rename original fdlibm.h to jerry-libm-internal.h
* And remove it from the public headers.
* Rename jerry-libm's public header to math.h
* This also makes jerry-core sources include `<math.h>`. Therefore,
should anyone want to use a different libm implementation with
jerry, it becomes possible. (The same way as we provide a minimal
libc with standard headers, but should it be insufficient or
conflicting for someone, it can be replaced.)
* Drop `s_` prefix from jerry-libm sources
* The original fdlibm implementation had various prefixes (e.g., `k_`
for sources of kernel routines, and `w_` for wrapper routines), but
after the specialization of fdlibm to jerry, only `s_` remained.
Since it does not encode anything anymore, it can be dropped.
* Stylistic edits to jerry-libm's CMakeLists
* Align project name with other CMakeLists in the code base
* Move Jerry-LibM under Apache License
* Using the same approach as was used by linux-wireless when ath5k
driver license needed clarification. Solution was proposed by SFLC.
External mail for future reference: http://lwn.net/Articles/247806/
* Tests & checks
* Remove FD from the name of libm unit test-related files
* Make vera++ and cppcheck check jerry-libm
* Targets
* Speculative update of targets to use jerry-libm
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
@@ -25,9 +25,10 @@ fi
|
||||
|
||||
JERRY_CORE_DIRS=`find jerry-core -type d`
|
||||
JERRY_LIBC_DIRS=`find jerry-libc -type d`
|
||||
JERRY_LIBM_DIRS=`find jerry-libm -type d`
|
||||
|
||||
INCLUDE_DIRS=()
|
||||
for DIR in $JERRY_CORE_DIRS $JERRY_LIBC_DIRS
|
||||
for DIR in $JERRY_CORE_DIRS $JERRY_LIBC_DIRS $JERRY_LIBM_DIRS
|
||||
do
|
||||
INCLUDE_DIRS=("${INCLUDE_DIRS[@]}" "-I$DIR")
|
||||
done
|
||||
@@ -38,4 +39,4 @@ cppcheck -j$CPPCHECK_JOBS --force \
|
||||
--error-exitcode=1 \
|
||||
--exitcode-suppressions=tools/cppcheck/suppressions-list \
|
||||
"${INCLUDE_DIRS[@]}" \
|
||||
jerry-core jerry-libc *.c *h tests/unit
|
||||
jerry-core jerry-libc jerry-libm *.c *h tests/unit
|
||||
|
||||
+2
-1
@@ -17,9 +17,10 @@
|
||||
|
||||
JERRY_CORE_FILES=`find ./jerry-core -name "*.c" -or -name "*.h"`
|
||||
JERRY_LIBC_FILES=`find ./jerry-libc -name "*.c" -or -name "*.h"`
|
||||
JERRY_LIBM_FILES=`find ./jerry-libm -name "*.c" -or -name "*.h"`
|
||||
JERRY_MAIN_FILES=`find . -maxdepth 1 -name "*.c" -or -name "*.h"`
|
||||
UNIT_TEST_FILES=`find ./tests/unit -name "*.c" -or -name "*.h"`
|
||||
|
||||
vera++ -r tools/vera++ -p jerry \
|
||||
-e --no-duplicate \
|
||||
$JERRY_CORE_FILES $JERRY_LIBC_FILES $JERRY_MAIN_FILES $UNIT_TEST_FILES
|
||||
$JERRY_CORE_FILES $JERRY_LIBC_FILES $JERRY_LIBM_FILES $JERRY_MAIN_FILES $UNIT_TEST_FILES
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
operatorEqVarError
|
||||
noConstructor
|
||||
duplicateExpression
|
||||
wrongmathcall:tests/unit/test-fdlibm.inc.h
|
||||
wrongmathcall:tests/unit/test-libm.inc.h
|
||||
variableScope:jerry-libm/*.c
|
||||
invalidPointerCast:jerry-libm/*.c
|
||||
unreadVariable:jerry-libm/*.c
|
||||
|
||||
// FIXME: false positive in cppcheck 1.61 (will disappear once distro ships with 1.69)
|
||||
variableScope:jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
# limitations under the License.
|
||||
|
||||
make -C tools/unit-tests build
|
||||
tools/unit-tests/gen-test-fdlibm >tests/unit/test-fdlibm.inc.h
|
||||
tools/unit-tests/gen-test-libm >tests/unit/test-libm.inc.h
|
||||
make -C tools/unit-tests clean
|
||||
@@ -16,7 +16,7 @@
|
||||
CC=gcc
|
||||
LDFLAGS=-lm
|
||||
|
||||
GENS=gen-test-fdlibm
|
||||
GENS=gen-test-libm
|
||||
|
||||
.PHONY: build
|
||||
build: $(GENS)
|
||||
@@ -25,5 +25,5 @@ build: $(GENS)
|
||||
clean:
|
||||
rm -f $(GENS)
|
||||
|
||||
gen-test-fdlibm: gen-test-fdlibm.c
|
||||
gen-test-libm: gen-test-libm.c
|
||||
$(CC) $< -o $@ $(LDFLAGS)
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Unit test generator for fdlibm.
|
||||
* Unit test generator for jerry-libm.
|
||||
* To be compiled separately from the rest of jerry and to be linked to a trusted libm.
|
||||
* Its output should be redirected to test-fdlibm.inc.h.
|
||||
* Its output should be redirected to test-libm.inc.h.
|
||||
*
|
||||
* Example:
|
||||
* gcc gen-test-fdlibm.c -o gen-test-fdlibm -lm
|
||||
* ./gen-test-fdlibm >test-fdlibm.inc.h
|
||||
* gcc gen-test-libm.c -o gen-test-libm -lm
|
||||
* ./gen-test-libm >test-libm.inc.h
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
@@ -34,7 +34,7 @@ int
|
||||
main (int argc, char **args)
|
||||
{
|
||||
printf ("/*\n"
|
||||
" * Generated by tools/gen-test-fdlibm.sh\n"
|
||||
" * Generated by tools/gen-test-libm.sh\n"
|
||||
" * DO NOT EDIT!!!\n"
|
||||
" */\n");
|
||||
|
||||
@@ -211,7 +211,7 @@ main (int argc, char **args)
|
||||
GEN_DBL_TEST (ceil (-7.37e+19));
|
||||
|
||||
/* copysign tests */
|
||||
/* SKIPPED: not declared in fdlibm-math.h
|
||||
/* SKIPPED: not publicly declared in jerry-libm
|
||||
GEN_DBL_TEST (copysign (0.0, 0.0));
|
||||
GEN_DBL_TEST (copysign (0.0, -0.0));
|
||||
GEN_DBL_TEST (copysign (-0.0, 0.0));
|
||||
@@ -314,7 +314,7 @@ main (int argc, char **args)
|
||||
GEN_DBL_TEST (fabs (-7.37e+19));
|
||||
|
||||
/* finite tests */
|
||||
/* SKIPPED: not declared in fdlibm-math.h
|
||||
/* SKIPPED: not publicly declared in jerry-libm
|
||||
GEN_INT_TEST (finite (0.0));
|
||||
GEN_INT_TEST (finite (-0.0));
|
||||
GEN_INT_TEST (finite (1.0));
|
||||
@@ -553,7 +553,7 @@ main (int argc, char **args)
|
||||
GEN_DBL_TEST (pow (0.7, 1.2));
|
||||
|
||||
/* scalbn tests */
|
||||
/* SKIPPED: not declared in fdlibm-math.h
|
||||
/* SKIPPED: not publicly declared in jerry-libm
|
||||
GEN_DBL_TEST (scalbn (0.0, 0));
|
||||
GEN_DBL_TEST (scalbn (-0.0, 0));
|
||||
GEN_DBL_TEST (scalbn (0.0, 1));
|
||||
Reference in New Issue
Block a user