View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0002877 | LibDOM | [All Projects] General | public | 2024-06-14 02:31 | 2024-06-14 02:31 | ||||||||
Reporter | Bruce Benson | ||||||||||||
Assigned To | |||||||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||||||
Status | new | Resolution | open | ||||||||||
Platform | GTK | OS | Linux | OS Version | Fedora 40 | ||||||||
Summary | 0002877: patches for v3.11 libdom, fixes ns-make-libs install stopped by compiler warning | ||||||||||||
Description | (note: I am not the Fedora package maintainer, Fedora is building on 3.9 apparently) quick build steps on Fedora 40 fail on compile warning. make: Entering directory '/home/bbenson/dev-netsurf/workspace/libdom' COMPILE: bindings/xml/expat_xmlparser.c COMPILE: src/core/node.c COMPILE: src/html/html_document.c bindings/xml/expat_xmlparser.c: In function ‘dom_xml_parser_create’: bindings/xml/expat_xmlparser.c:487:31: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 487 | parser = calloc(sizeof(*parser), 1); | ^ bindings/xml/expat_xmlparser.c:487:31: note: earlier argument should specify number of elements, later size of each element cc1: all warnings being treated as errors make: *** [/home/bbenson/dev-netsurf/workspace/inst-x86_64-redhat-linux/share/netsurf-buildsystem/makefiles/Makefile.top:603: build-x86_64-redhat-linux-x86_64-redhat-linux-release-lib-static/bindings_xml_expat_xmlparser.o] Error 1 make: *** Waiting for unfinished jobs.... src/core/node.c: In function ‘_dom_event_targets_expand’: src/core/node.c:2382:34: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 2382 | t = calloc(sizeof(*t), size); | ^ src/core/node.c:2382:34: note: earlier argument should specify number of elements, later size of each element cc1: all warnings being treated as errors make: *** [/home/bbenson/dev-netsurf/workspace/inst-x86_64-redhat-linux/share/netsurf-buildsystem/makefiles/Makefile.top:603: build-x86_64-redhat-linux-x86_64-redhat-linux-release-lib-static/src_core_node.o] Error 1 src/html/html_document.c: In function ‘_dom_html_document_initialise’: src/html/html_document.c:137:39: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 137 | doc->memoised = calloc(sizeof(dom_string *), hds_COUNT); | ^~~~~~~~~~ src/html/html_document.c:137:39: note: earlier argument should specify number of elements, later size of each element src/html/html_document.c:142:39: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 142 | doc->elements = calloc(sizeof(dom_string *), | ^~~~~~~~~~ src/html/html_document.c:142:39: note: earlier argument should specify number of elements, later size of each element cc1: all warnings being treated as errors make: *** [/home/bbenson/dev-netsurf/workspace/inst-x86_64-redhat-linux/share/netsurf-buildsystem/makefiles/Makefile.top:603: build-x86_64-redhat-linux-x86_64-redhat-linux-release-lib-static/src_html_html_document.o] Error 1 make: Leaving directory '/home/bbenson/dev-netsurf/workspace/libdom' | ||||||||||||
Steps To Reproduce | Attempted to git source and compile on Fedora 40 x86_64 using quick build, for either to either GTK or qt6. During ns-pull-install (ns-make-libs compiler part), gcc appears to stop compilation due to warnings treated as errors ("-Werror=calloc-transposed-args"). Possibly due to newer compiler defaults in Fedora 40. Applied changes listed in patch below, compile completed successfully, and app appears to work fine. I'm not saying these patches are required. You all may want to change compiler options instead or may have other considerations. I enjoy the browser project and wanted to help. Thanks!! | ||||||||||||
Additional Information | ~/dev-netsurf-compiled/workspace/libdom $ git diff diff --git a/bindings/xml/expat_xmlparser.c b/bindings/xml/expat_xmlparser.c index a63ccf1..ba5b4e7 100644 --- a/bindings/xml/expat_xmlparser.c +++ b/bindings/xml/expat_xmlparser.c @@ -484,7 +484,7 @@ dom_xml_parser_create(const char *enc, const char *int_enc, UNUSED(int_enc); - parser = calloc(sizeof(*parser), 1); + parser = calloc(1, sizeof(*parser)); if (parser == NULL) { msg(DOM_MSG_CRITICAL, mctx, "No memory for parser"); return NULL; diff --git a/src/core/node.c b/src/core/node.c diff --git a/bindings/xml/expat_xmlparser.c b/bindings/xml/expat_xmlparser.c index a63ccf1..ba5b4e7 100644 --- a/bindings/xml/expat_xmlparser.c +++ b/bindings/xml/expat_xmlparser.c @@ -484,7 +484,7 @@ dom_xml_parser_create(const char *enc, const char *int_enc, UNUSED(int_enc); - parser = calloc(sizeof(*parser), 1); + parser = calloc(1, sizeof(*parser)); if (parser == NULL) { msg(DOM_MSG_CRITICAL, mctx, "No memory for parser"); return NULL; diff --git a/src/core/node.c b/src/core/node.c index da179c3..9eabd2f 100644 --- a/src/core/node.c +++ b/src/core/node.c @@ -2379,7 +2379,7 @@ static inline dom_exception _dom_event_targets_expand( if (t == NULL) { /* Create the event target list */ size = 64; - t = calloc(sizeof(*t), size); + t = calloc(size, sizeof(*t)); if (t == NULL) { return DOM_NO_MEM_ERR; } diff --git a/src/html/html_document.c b/src/html/html_document.c index cf3c25d..7ba91aa 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -134,13 +134,13 @@ dom_exception _dom_html_document_initialise(dom_html_document *doc, doc->cookie = NULL; doc->body = NULL; - doc->memoised = calloc(sizeof(dom_string *), hds_COUNT); + doc->memoised = calloc(hds_COUNT, sizeof(dom_string *)); if (doc->memoised == NULL) { error = DOM_NO_MEM_ERR; goto out; } - doc->elements = calloc(sizeof(dom_string *), - DOM_HTML_ELEMENT_TYPE__COUNT); + doc->elements = calloc(DOM_HTML_ELEMENT_TYPE__COUNT, + sizeof(dom_string *)); if (doc->elements == NULL) { error = DOM_NO_MEM_ERR; goto out; | ||||||||||||
Tags | No tags attached. | ||||||||||||
Fixed in CI build # | |||||||||||||
Reported in CI build # | |||||||||||||
Attached Files |
|
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2024-06-14 02:31 | Bruce Benson | New Issue |