2024-10-31 23:05 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002432LibCSS[All Projects] Generalpublic2016-03-07 13:36
ReporterAnthony J. Bentley 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusconfirmedResolutionopen 
PlatformOSOpenBSDOS Version
Summary0002432: libcss testsuite uses reserved identifiers
DescriptionISO C reserves identifiers beginning with __.

The libcss test suite creates a function called __assert2, which conflicts with a function in OpenBSD's assert.h, resulting in a build failure before the tests can be run:

echo " COMPILE: test/csdetect.c"
 COMPILE: test/csdetect.c
cc -MMD -MP -D_BSD_SOURCE -D_DEFAULT_SOURCE -I/usr/ports/pobj/libcss-0.6.0/libcss-0.6.0/include/ -I/usr/ports/pobj/libcss-0.6.0/libcss-0.6.0/src -Wall -W -Wundef -Wpointer-arith -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Werror -O2 -pipe -g -I/include -I/usr/local/include -D_ALIGNED="__attribute__((aligned))" -DNDEBUG -std=c99 -I/usr/local/include -o build-amd64-unknown-openbsd5.9-amd64-unknown-openbsd5.9-release-lib-shared/test_csdetect.o -c test/csdetect.c
In file included from test/csdetect.c:15:
test/testutils.h:18: error: conflicting types for '__assert2'
/usr/include/assert.h:66: error: previous declaration of '__assert2' was here
test/testutils.h:22: error: conflicting types for '__assert2'
/usr/include/assert.h:66: error: previous declaration of '__assert2' was here
/usr/local/share/netsurf-buildsystem/makefiles/Makefile.top:614: recipe for target 'build-amd64-unknown-openbsd5.9-amd64-unknown-openbsd5.9-release-lib-shared/test_csdetect.o' failed
gmake: *** [build-amd64-unknown-openbsd5.9-amd64-unknown-openbsd5.9-release-lib-shared/test_csdetect.o] Error 1

The attached patch renames the function, which allows the build to continue and all tests to pass.
TagsNo tags attached.
Fixed in CI build #
Reported in CI build #
Attached Files
  • diff file icon libcss-test_testutils.diff (962 bytes) 2016-02-22 02:48 -
    $OpenBSD$
    --- test/testutils.h.orig	Sun Feb 21 16:09:59 2016
    +++ test/testutils.h	Sun Feb 21 16:10:10 2016
    @@ -14,10 +14,10 @@
     /* Redefine assert, so we can simply use the standard assert mechanism
      * within testcases and exit with the right output for the testrunner
      * to do the right thing. */
    -void __assert2(const char *expr, const char *function,
    +void css_assert2(const char *expr, const char *function,
     		const char *file, int line);
     
    -void __assert2(const char *expr, const char *function,
    +void css_assert2(const char *expr, const char *function,
     		const char *file, int line)
     {
     	UNUSED(function);
    @@ -30,7 +30,7 @@ void __assert2(const char *expr, const char *function,
     
     #undef assert
     #define assert(expr) \
    -  ((void) ((expr) || (__assert2 (#expr, __func__, __FILE__, __LINE__), 0)))
    +  ((void) ((expr) || (css_assert2 (#expr, __func__, __FILE__, __LINE__), 0)))
     
     
     typedef bool (*line_func)(const char *data, size_t datalen, void *pw);
    
    diff file icon libcss-test_testutils.diff (962 bytes) 2016-02-22 02:48 +

-Relationships
+Relationships

-Notes
There are no notes attached to this issue.
+Notes

-Issue History
Date Modified Username Field Change
2016-02-22 02:48 Anthony J. Bentley New Issue
2016-02-22 02:48 Anthony J. Bentley File Added: libcss-test_testutils.diff
2016-03-07 13:36 Vincent Sanders Status new => confirmed
+Issue History