From 98565b6bd0df2aaa35f21f30f0bd81ed718b2cf5 Mon Sep 17 00:00:00 2001 From: Chandan Padhi Date: Fri, 22 Mar 2024 17:21:30 +0530 Subject: [PATCH] Use third party libxml System libxml update results in build errors in QB. Change-Id: I039ec4bd18a6842f8608b9e48d3bef73d2311f20 Signed-off-by: Chandan Padhi --- third_party/libxml/BUILD.gn | 232 ++++++++++++++++++++++++++++++++++++++------ tizen_src/build/common.sh | 1 - 2 files changed, 203 insertions(+), 30 deletions(-) diff --git a/third_party/libxml/BUILD.gn b/third_party/libxml/BUILD.gn index 3772c67..d40e166 100644 --- a/third_party/libxml/BUILD.gn +++ b/third_party/libxml/BUILD.gn @@ -1,8 +1,55 @@ -# Copyright 2016 The Chromium Authors +# Copyright 2013 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/linux/pkg_config.gni") +# Define an "os_include" variable that points at the OS-specific generated +# headers. These were generated by running the configure script offline. +if (is_linux || is_chromeos || is_android || is_nacl || is_fuchsia || is_tizen) { + os_include = "linux" +} else if (is_apple) { + os_include = "mac" +} else if (is_win) { + os_include = "win32" +} + +import("//third_party/libxml/libxml_visibility.gni") + +config("libxml_config") { + # Define LIBXML_STATIC as nothing to match how libxml.h (an internal header) + # defines LIBXML_STATIC, otherwise we get the macro redefined warning from + # GCC. ("defines" does "-DFOO" which defines the macro FOO as 1.) + cflags = [ "-DLIBXML_STATIC=" ] + + include_dirs = [ + "src/include", + "$os_include/include", + ] +} + +config("libxml_warnings") { + if (is_win) { + cflags_c = [ + "/wd4018", # Signed/unsigned mismatch in comparison. + "/wd4267", # TODO(brucedawson): http://crbug.com/554200 fix C4267 + "/wd4311", # and C4311 warnings. + ] + } + if (is_clang) { + cflags = [ + # libxml passes `const unsigned char*` through `const char*`. + "-Wno-pointer-sign", + + # pattern.c and uri.c both have an intentional `for (...);` / + # `while(...);` loop. I submitted a patch to move the `'` to its own + # line, but until that's landed suppress the warning: + "-Wno-empty-body", + + # debugXML.c compares array 'arg' to NULL. + "-Wno-tautological-pointer-compare", + + # threads.c attempts to forward declare a pthread_equal which doesn't + # match the prototype in pthreads.h + "-Wno-ignored-attributes", # libxml casts from int to long to void*. "-Wno-int-to-void-pointer-cast", @@ -51,11 +98,22 @@ static_library("xml_reader") { configs += [ ":libxml_config" ] } -source_set("libxml") { - public_configs = [ ":system_libxml" ] +# Please keep in sync with //build/linux/unbundle/libxml.gn. +static_library("xml_writer") { + # The XmlWriter is considered safe to use from any target. + visibility = [ "*" ] + sources = [ + "chromium/xml_writer.cc", + "chromium/xml_writer.h", + ] + deps = [ + ":libxml", + ":libxml_utils", + ] + configs += [ ":libxml_config" ] } -# Please keep in sync with //third_party/libxml/BUILD.gn. +# Please keep in sync with //build/linux/unbundle/libxml.gn. static_library("libxml_utils") { # Do not expand this visibility list without first consulting with the # Security Team. @@ -70,40 +128,156 @@ static_library("libxml_utils") { "chromium/libxml_utils.cc", "chromium/libxml_utils.h", ] - public_configs = [ ":system_libxml" ] + deps = [ ":libxml" ] + public_deps = [ "//third_party/icu:icuuc" ] + public_configs = [ ":libxml_config" ] } -# Please keep in sync with //third_party/libxml/BUILD.gn. -static_library("xml_reader") { +static_library("libxml") { # Do not expand this visibility list without first consulting with the # Security Team. visibility = [ - "//base/test:test_support", - "//components/policy/core/common:unit_tests", - "//services/data_decoder:*", - "//tools/traffic_annotation/auditor:auditor_sources", - ] - sources = [ - "chromium/xml_reader.cc", - "chromium/xml_reader.h", + ":libxml_utils", + ":xml_reader", + ":xml_writer", + "//chromecast/internal", + "//testing/libfuzzer/*", + "//third_party/blink/renderer/*", + "//third_party/fontconfig", + "//third_party/libxslt", + "//third_party/maldoca/*", ] - deps = [ ":libxml_utils" ] -} + if (is_ios) { + foreach(tgt, ios_libxml_visibility_additions) { + visibility += [ "//ios_internal/$tgt" ] + } + } -# Please keep in sync with //third_party/libxml/BUILD.gn. -static_library("xml_writer") { - # The XmlWriter is considered safe to use from any target. - visibility = [ "*" ] + output_name = "libxml2" + + # Commented out sources are libxml2 files we do not want to include. They are + # here to make it easy to identify files which are new. sources = [ - "chromium/xml_writer.cc", - "chromium/xml_writer.h", + "src/HTMLparser.c", + "src/HTMLtree.c", + + #"src/SAX.c", + "src/SAX2.c", + "src/buf.c", + + #"src/c14n.c", + #"src/catalog.c", + "src/chvalid.c", + + #"src/debugXML.c", + "src/dict.c", + "src/encoding.c", + "src/entities.c", + "src/error.c", + "src/globals.c", + "src/hash.c", + "src/include/libxml/HTMLparser.h", + "src/include/libxml/HTMLtree.h", + "src/include/libxml/SAX.h", + "src/include/libxml/SAX2.h", + "src/include/libxml/c14n.h", + "src/include/libxml/catalog.h", + "src/include/libxml/chvalid.h", + "src/include/libxml/debugXML.h", + "src/include/libxml/dict.h", + "src/include/libxml/encoding.h", + "src/include/libxml/entities.h", + "src/include/libxml/globals.h", + "src/include/libxml/hash.h", + "src/include/libxml/list.h", + "src/include/libxml/nanoftp.h", + "src/include/libxml/nanohttp.h", + "src/include/libxml/parser.h", + "src/include/libxml/parserInternals.h", + "src/include/libxml/pattern.h", + "src/include/libxml/relaxng.h", + "src/include/libxml/schemasInternals.h", + "src/include/libxml/schematron.h", + "src/include/libxml/threads.h", + "src/include/libxml/tree.h", + "src/include/libxml/uri.h", + "src/include/libxml/valid.h", + "src/include/libxml/xinclude.h", + "src/include/libxml/xlink.h", + "src/include/libxml/xmlIO.h", + "src/include/libxml/xmlautomata.h", + "src/include/libxml/xmlerror.h", + "src/include/libxml/xmlexports.h", + "src/include/libxml/xmlmemory.h", + "src/include/libxml/xmlmodule.h", + "src/include/libxml/xmlreader.h", + "src/include/libxml/xmlregexp.h", + "src/include/libxml/xmlsave.h", + "src/include/libxml/xmlschemas.h", + "src/include/libxml/xmlschemastypes.h", + "src/include/libxml/xmlstring.h", + "src/include/libxml/xmlunicode.h", + "src/include/libxml/xmlwriter.h", + "src/include/libxml/xpath.h", + "src/include/libxml/xpathInternals.h", + "src/include/libxml/xpointer.h", + + #"src/legacy.c", + "src/libxml.h", + "src/list.c", + "src/parser.c", + "src/parserInternals.c", + "src/pattern.c", + + #"src/relaxng.c", + + #"src/schematron.c", + "src/threads.c", + "src/timsort.h", + "src/tree.c", + "src/triodef.h", + "src/trionan.h", + + #"src/trio.c", + #"src/trio.h", + #"src/triodef.h", + # Note: xpath.c #includes trionan.c + #"src/trionan.c", + #"src/triop.h", + #"src/triostr.c", + #"src/triostr.h", + "src/uri.c", + "src/valid.c", + + #"src/xinclude.c", + #"src/xlink.c", + "src/xmlIO.c", + "src/xmlmemory.c", + + #"src/xmlmodule.c", + "src/xmlreader.c", + + #"src/xmlregexp.c", + "src/xmlsave.c", + + #"src/xmlschemas.c", + #"src/xmlschemastypes.c", + "src/xmlstring.c", + "src/xmlunicode.c", + "src/xmlwriter.c", + "src/xpath.c", + + #"src/xpointer.c", + #"src/xzlib.c", ] - deps = [ - ":libxml", - ":libxml_utils", + + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ + "//build/config/compiler:no_chromium_code", + + # Must be after no_chromium_code for warning flags to be ordered correctly. + ":libxml_warnings", ] - configs += [ ":libxml_config" ] -} if (is_linux || is_chromeos) { sources += [ diff --git a/tizen_src/build/common.sh b/tizen_src/build/common.sh index 1dd2645..45054d5 100755 --- a/tizen_src/build/common.sh +++ b/tizen_src/build/common.sh @@ -25,7 +25,6 @@ function getSystemDeps() { local platform=$1 local system_deps="--system-libraries libpng - libxml libxslt zlib " -- 2.7.4