diff --git a/.gitignore b/.gitignore index 216eab2..12c85df 100644 --- a/.gitignore +++ b/.gitignore @@ -12,9 +12,8 @@ defs.h.in defs.h.in~ /lib/stamp-h1 test-suite.log -libnl-3.7.0 -!slove-oh-update-sp3.patch -!solve-oh-compile-problem.patch +libnl-libnl3_11_0 +!solve-oh-compile-problem3_11_0.patch /libnl-1.pc /lib/defs.h cscope.* diff --git a/BUILD.gn b/BUILD.gn index 86507b0..ddd82cf 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -13,7 +13,7 @@ libnl_path = rebase_path("//third_party/libnl") exec_script("install.sh", [ "$libnl_path" ]) config("libnl_share_public_config") { - include_dirs = [ "//third_party/libnl/libnl-3.7.0/include/" ] + include_dirs = [ "//third_party/libnl/libnl/include/" ] } action("build_grammar") { @@ -25,7 +25,7 @@ action("build_grammar") { "--header-file=$grammer_hh", "-o", rebase_path("$target_out_dir/gen/lib/route/pktloc_grammar.c"), - rebase_path("libnl-3.7.0/lib/route/pktloc_grammar.l"), + rebase_path("libnl/lib/route/pktloc_grammar.l"), ] } @@ -38,7 +38,7 @@ action("pktloc_syntax") { "-d", "-o", rebase_path("$target_out_dir/gen/lib/route/pktloc_syntax.c"), - rebase_path("libnl-3.7.0/lib/route/pktloc_syntax.y"), + rebase_path("libnl/lib/route/pktloc_syntax.y"), ] } @@ -51,7 +51,7 @@ action("ematch_grammar") { "--header-file=$grammer_hh", "-o", rebase_path("$target_out_dir/gen/lib/route/cls/ematch_grammar.c"), - rebase_path("libnl-3.7.0/lib/route/cls/ematch_grammar.l"), + rebase_path("libnl/lib/route/cls/ematch_grammar.l"), ] } @@ -64,7 +64,7 @@ action("ematch_syntax") { "-d", "-o", rebase_path("$target_out_dir/gen/lib/route/cls/ematch_syntax.c"), - rebase_path("libnl-3.7.0/lib/route/cls/ematch_syntax.y"), + rebase_path("libnl/lib/route/cls/ematch_syntax.y"), ] } if (!defined(ohos_lite)) { @@ -80,11 +80,11 @@ if (!defined(ohos_lite)) { syntax_path = get_path_info(syntax_outputs[0], "dir") include_dirs = [ - "libnl-3.7.0", - "libnl-3.7.0/include", - "libnl-3.7.0/lib", - "libnl-3.7.0/lib/route/cls", - "libnl-3.7.0/lib/route", + "libnl", + "libnl/include", + "libnl/lib", + "libnl/lib/route/cls", + "libnl/lib/route", ] include_dirs += [ @@ -97,161 +97,161 @@ if (!defined(ohos_lite)) { public_configs = [ ":libnl_share_public_config" ] sources = [ - "libnl-3.7.0/lib/addr.c", - "libnl-3.7.0/lib/attr.c", - "libnl-3.7.0/lib/cache.c", - "libnl-3.7.0/lib/cache_mngr.c", - "libnl-3.7.0/lib/cache_mngt.c", - "libnl-3.7.0/lib/data.c", - "libnl-3.7.0/lib/error.c", - "libnl-3.7.0/lib/handlers.c", - "libnl-3.7.0/lib/hash.c", - "libnl-3.7.0/lib/hashtable.c", - "libnl-3.7.0/lib/mpls.c", - "libnl-3.7.0/lib/msg.c", - "libnl-3.7.0/lib/nl.c", - "libnl-3.7.0/lib/object.c", - "libnl-3.7.0/lib/socket.c", - "libnl-3.7.0/lib/utils.c", - "libnl-3.7.0/lib/version.c", - "libnl-3.7.0/lib/fib_lookup/lookup.c", - "libnl-3.7.0/lib/fib_lookup/request.c", - "libnl-3.7.0/lib/genl/ctrl.c", - "libnl-3.7.0/lib/genl/family.c", - "libnl-3.7.0/lib/genl/genl.c", - "libnl-3.7.0/lib/genl/mngt.c", - "libnl-3.7.0/lib/idiag/idiag.c", - "libnl-3.7.0/lib/idiag/idiag_meminfo_obj.c", - "libnl-3.7.0/lib/idiag/idiag_msg_obj.c", - "libnl-3.7.0/lib/idiag/idiag_req_obj.c", - "libnl-3.7.0/lib/idiag/idiag_vegasinfo_obj.c", - "libnl-3.7.0/lib/netfilter/ct.c", - "libnl-3.7.0/lib/netfilter/ct_obj.c", - "libnl-3.7.0/lib/netfilter/exp.c", - "libnl-3.7.0/lib/netfilter/exp_obj.c", - "libnl-3.7.0/lib/netfilter/log.c", - "libnl-3.7.0/lib/netfilter/log_msg.c", - "libnl-3.7.0/lib/netfilter/log_msg_obj.c", - "libnl-3.7.0/lib/netfilter/log_obj.c", - "libnl-3.7.0/lib/netfilter/netfilter.c", - "libnl-3.7.0/lib/netfilter/nfnl.c", - "libnl-3.7.0/lib/netfilter/queue.c", - "libnl-3.7.0/lib/netfilter/queue_msg.c", - "libnl-3.7.0/lib/netfilter/queue_msg_obj.c", - "libnl-3.7.0/lib/netfilter/queue_obj.c", - "libnl-3.7.0/lib/route/act.c", - "libnl-3.7.0/lib/route/addr.c", - "libnl-3.7.0/lib/route/class.c", - "libnl-3.7.0/lib/route/classid.c", - "libnl-3.7.0/lib/route/cls.c", - "libnl-3.7.0/lib/route/link.c", - "libnl-3.7.0/lib/route/mdb.c", - "libnl-3.7.0/lib/route/neigh.c", - "libnl-3.7.0/lib/route/neightbl.c", - "libnl-3.7.0/lib/route/netconf.c", - "libnl-3.7.0/lib/route/nexthop.c", - "libnl-3.7.0/lib/route/nexthop_encap.c", - "libnl-3.7.0/lib/route/nh_encap_mpls.c", - "libnl-3.7.0/lib/route/pktloc.c", + "libnl/lib/addr.c", + "libnl/lib/attr.c", + "libnl/lib/cache.c", + "libnl/lib/cache_mngr.c", + "libnl/lib/cache_mngt.c", + "libnl/lib/data.c", + "libnl/lib/error.c", + "libnl/lib/handlers.c", + "libnl/lib/hash.c", + "libnl/lib/hashtable.c", + "libnl/lib/mpls.c", + "libnl/lib/msg.c", + "libnl/lib/nl.c", + "libnl/lib/object.c", + "libnl/lib/socket.c", + "libnl/lib/utils.c", + "libnl/lib/version.c", + "libnl/lib/fib_lookup/lookup.c", + "libnl/lib/fib_lookup/request.c", + "libnl/lib/genl/ctrl.c", + "libnl/lib/genl/family.c", + "libnl/lib/genl/genl.c", + "libnl/lib/genl/mngt.c", + "libnl/lib/idiag/idiag.c", + "libnl/lib/idiag/idiag_meminfo_obj.c", + "libnl/lib/idiag/idiag_msg_obj.c", + "libnl/lib/idiag/idiag_req_obj.c", + "libnl/lib/idiag/idiag_vegasinfo_obj.c", + "libnl/lib/netfilter/ct.c", + "libnl/lib/netfilter/ct_obj.c", + "libnl/lib/netfilter/exp.c", + "libnl/lib/netfilter/exp_obj.c", + "libnl/lib/netfilter/log.c", + "libnl/lib/netfilter/log_msg.c", + "libnl/lib/netfilter/log_msg_obj.c", + "libnl/lib/netfilter/log_obj.c", + "libnl/lib/netfilter/netfilter.c", + "libnl/lib/netfilter/nfnl.c", + "libnl/lib/netfilter/queue.c", + "libnl/lib/netfilter/queue_msg.c", + "libnl/lib/netfilter/queue_msg_obj.c", + "libnl/lib/netfilter/queue_obj.c", + "libnl/lib/route/act.c", + "libnl/lib/route/addr.c", + "libnl/lib/route/class.c", + "libnl/lib/route/classid.c", + "libnl/lib/route/cls.c", + "libnl/lib/route/link.c", + "libnl/lib/route/mdb.c", + "libnl/lib/route/neigh.c", + "libnl/lib/route/neightbl.c", + "libnl/lib/route/netconf.c", + "libnl/lib/route/nexthop.c", + "libnl/lib/route/nexthop_encap.c", + "libnl/lib/route/nh_encap_mpls.c", + "libnl/lib/route/pktloc.c", rebase_path("$grammer_path/pktloc_grammar.c"), rebase_path("$pktloc_path/pktloc_syntax.c"), - "libnl-3.7.0/lib/route/qdisc.c", - "libnl-3.7.0/lib/route/route.c", - "libnl-3.7.0/lib/route/route_obj.c", - "libnl-3.7.0/lib/route/route_utils.c", - "libnl-3.7.0/lib/route/rtnl.c", - "libnl-3.7.0/lib/route/rule.c", - "libnl-3.7.0/lib/route/tc.c", - "libnl-3.7.0/lib/route/act/gact.c", - "libnl-3.7.0/lib/route/act/mirred.c", - "libnl-3.7.0/lib/route/act/nat.c", - "libnl-3.7.0/lib/route/act/skbedit.c", - "libnl-3.7.0/lib/route/act/vlan.c", - "libnl-3.7.0/lib/route/cls/basic.c", - "libnl-3.7.0/lib/route/cls/cgroup.c", - "libnl-3.7.0/lib/route/cls/ematch.c", + "libnl/lib/route/qdisc.c", + "libnl/lib/route/route.c", + "libnl/lib/route/route_obj.c", + "libnl/lib/route/route_utils.c", + "libnl/lib/route/rtnl.c", + "libnl/lib/route/rule.c", + "libnl/lib/route/tc.c", + "libnl/lib/route/act/gact.c", + "libnl/lib/route/act/mirred.c", + "libnl/lib/route/act/nat.c", + "libnl/lib/route/act/skbedit.c", + "libnl/lib/route/act/vlan.c", + "libnl/lib/route/cls/basic.c", + "libnl/lib/route/cls/cgroup.c", + "libnl/lib/route/cls/ematch.c", rebase_path("$ematch_path/ematch_grammar.c"), rebase_path("$syntax_path/ematch_syntax.c"), - "libnl-3.7.0/lib/route/cls/flower.c", - "libnl-3.7.0/lib/route/cls/fw.c", - "libnl-3.7.0/lib/route/cls/mall.c", - "libnl-3.7.0/lib/route/cls/police.c", - "libnl-3.7.0/lib/route/cls/u32.c", - "libnl-3.7.0/lib/route/cls/ematch/cmp.c", - "libnl-3.7.0/lib/route/cls/ematch/container.c", - "libnl-3.7.0/lib/route/cls/ematch/meta.c", - "libnl-3.7.0/lib/route/cls/ematch/nbyte.c", - "libnl-3.7.0/lib/route/cls/ematch/text.c", - "libnl-3.7.0/lib/route/link/api.c", - "libnl-3.7.0/lib/route/link/bonding.c", - "libnl-3.7.0/lib/route/link/bridge.c", - "libnl-3.7.0/lib/route/link/can.c", - "libnl-3.7.0/lib/route/link/dummy.c", - "libnl-3.7.0/lib/route/link/geneve.c", - "libnl-3.7.0/lib/route/link/ifb.c", - "libnl-3.7.0/lib/route/link/inet6.c", - "libnl-3.7.0/lib/route/link/inet.c", - "libnl-3.7.0/lib/route/link/ip6gre.c", - "libnl-3.7.0/lib/route/link/ip6tnl.c", - "libnl-3.7.0/lib/route/link/ip6vti.c", - "libnl-3.7.0/lib/route/link/ipgre.c", - "libnl-3.7.0/lib/route/link/ipip.c", - "libnl-3.7.0/lib/route/link/ipvlan.c", - "libnl-3.7.0/lib/route/link/ipvti.c", - "libnl-3.7.0/lib/route/link/macsec.c", - "libnl-3.7.0/lib/route/link/macvlan.c", - "libnl-3.7.0/lib/route/link/ppp.c", - "libnl-3.7.0/lib/route/link/sit.c", - "libnl-3.7.0/lib/route/link/sriov.c", - "libnl-3.7.0/lib/route/link/team.c", - "libnl-3.7.0/lib/route/link/veth.c", - "libnl-3.7.0/lib/route/link/vlan.c", - "libnl-3.7.0/lib/route/link/vrf.c", - "libnl-3.7.0/lib/route/link/vxlan.c", - "libnl-3.7.0/lib/route/link/xfrmi.c", - "libnl-3.7.0/lib/route/qdisc/blackhole.c", - "libnl-3.7.0/lib/route/qdisc/cbq.c", - "libnl-3.7.0/lib/route/qdisc/dsmark.c", - "libnl-3.7.0/lib/route/qdisc/fifo.c", - "libnl-3.7.0/lib/route/qdisc/fq_codel.c", - "libnl-3.7.0/lib/route/qdisc/hfsc.c", - "libnl-3.7.0/lib/route/qdisc/htb.c", - "libnl-3.7.0/lib/route/qdisc/ingress.c", - "libnl-3.7.0/lib/route/qdisc/mqprio.c", - "libnl-3.7.0/lib/route/qdisc/netem.c", - "libnl-3.7.0/lib/route/qdisc/plug.c", - "libnl-3.7.0/lib/route/qdisc/prio.c", - "libnl-3.7.0/lib/route/qdisc/red.c", - "libnl-3.7.0/lib/route/qdisc/sfq.c", - "libnl-3.7.0/lib/route/qdisc/tbf.c", - "libnl-3.7.0/lib/xfrm/ae.c", - "libnl-3.7.0/lib/xfrm/lifetime.c", - "libnl-3.7.0/lib/xfrm/sa.c", - "libnl-3.7.0/lib/xfrm/selector.c", - "libnl-3.7.0/lib/xfrm/sp.c", - "libnl-3.7.0/lib/xfrm/template.c", - "libnl-3.7.0/lib/cli/cls/basic.c", - "libnl-3.7.0/lib/cli/cls/cgroup.c", - "libnl-3.7.0/lib/cli/qdisc/bfifo.c", - "libnl-3.7.0/lib/cli/qdisc/blackhole.c", - "libnl-3.7.0/lib/cli/qdisc/fq_codel.c", - "libnl-3.7.0/lib/cli/qdisc/hfsc.c", - "libnl-3.7.0/lib/cli/qdisc/htb.c", - "libnl-3.7.0/lib/cli/qdisc/ingress.c", - "libnl-3.7.0/lib/cli/qdisc/pfifo.c", - "libnl-3.7.0/lib/cli/qdisc/plug.c", - "libnl-3.7.0/src/lib/addr.c", - "libnl-3.7.0/src/lib/class.c", - "libnl-3.7.0/src/lib/cls.c", - "libnl-3.7.0/src/lib/ct.c", - "libnl-3.7.0/src/lib/exp.c", - "libnl-3.7.0/src/lib/link.c", - "libnl-3.7.0/src/lib/neigh.c", - "libnl-3.7.0/src/lib/qdisc.c", - "libnl-3.7.0/src/lib/route.c", - "libnl-3.7.0/src/lib/rule.c", - "libnl-3.7.0/src/lib/tc.c", - "libnl-3.7.0/src/lib/utils.c", + "libnl/lib/route/cls/flower.c", + "libnl/lib/route/cls/fw.c", + "libnl/lib/route/cls/mall.c", + "libnl/lib/route/cls/police.c", + "libnl/lib/route/cls/u32.c", + "libnl/lib/route/cls/ematch/cmp.c", + "libnl/lib/route/cls/ematch/container.c", + "libnl/lib/route/cls/ematch/meta.c", + "libnl/lib/route/cls/ematch/nbyte.c", + "libnl/lib/route/cls/ematch/text.c", + "libnl/lib/route/link/api.c", + "libnl/lib/route/link/bonding.c", + "libnl/lib/route/link/bridge.c", + "libnl/lib/route/link/can.c", + "libnl/lib/route/link/dummy.c", + "libnl/lib/route/link/geneve.c", + "libnl/lib/route/link/ifb.c", + "libnl/lib/route/link/inet6.c", + "libnl/lib/route/link/inet.c", + "libnl/lib/route/link/ip6gre.c", + "libnl/lib/route/link/ip6tnl.c", + "libnl/lib/route/link/ip6vti.c", + "libnl/lib/route/link/ipgre.c", + "libnl/lib/route/link/ipip.c", + "libnl/lib/route/link/ipvlan.c", + "libnl/lib/route/link/ipvti.c", + "libnl/lib/route/link/macsec.c", + "libnl/lib/route/link/macvlan.c", + "libnl/lib/route/link/ppp.c", + "libnl/lib/route/link/sit.c", + "libnl/lib/route/link/sriov.c", + "libnl/lib/route/link/team.c", + "libnl/lib/route/link/veth.c", + "libnl/lib/route/link/vlan.c", + "libnl/lib/route/link/vrf.c", + "libnl/lib/route/link/vxlan.c", + "libnl/lib/route/link/xfrmi.c", + "libnl/lib/route/qdisc/blackhole.c", + "libnl/lib/route/qdisc/cbq.c", + "libnl/lib/route/qdisc/dsmark.c", + "libnl/lib/route/qdisc/fifo.c", + "libnl/lib/route/qdisc/fq_codel.c", + "libnl/lib/route/qdisc/hfsc.c", + "libnl/lib/route/qdisc/htb.c", + "libnl/lib/route/qdisc/ingress.c", + "libnl/lib/route/qdisc/mqprio.c", + "libnl/lib/route/qdisc/netem.c", + "libnl/lib/route/qdisc/plug.c", + "libnl/lib/route/qdisc/prio.c", + "libnl/lib/route/qdisc/red.c", + "libnl/lib/route/qdisc/sfq.c", + "libnl/lib/route/qdisc/tbf.c", + "libnl/lib/xfrm/ae.c", + "libnl/lib/xfrm/lifetime.c", + "libnl/lib/xfrm/sa.c", + "libnl/lib/xfrm/selector.c", + "libnl/lib/xfrm/sp.c", + "libnl/lib/xfrm/template.c", + "libnl/lib/cli/cls/basic.c", + "libnl/lib/cli/cls/cgroup.c", + "libnl/lib/cli/qdisc/bfifo.c", + "libnl/lib/cli/qdisc/blackhole.c", + "libnl/lib/cli/qdisc/fq_codel.c", + "libnl/lib/cli/qdisc/hfsc.c", + "libnl/lib/cli/qdisc/htb.c", + "libnl/lib/cli/qdisc/ingress.c", + "libnl/lib/cli/qdisc/pfifo.c", + "libnl/lib/cli/qdisc/plug.c", + "libnl/src/lib/addr.c", + "libnl/src/lib/class.c", + "libnl/src/lib/cls.c", + "libnl/src/lib/ct.c", + "libnl/src/lib/exp.c", + "libnl/src/lib/link.c", + "libnl/src/lib/neigh.c", + "libnl/src/lib/qdisc.c", + "libnl/src/lib/route.c", + "libnl/src/lib/rule.c", + "libnl/src/lib/tc.c", + "libnl/src/lib/utils.c", ] deps = [ @@ -269,6 +269,8 @@ if (!defined(ohos_lite)) { #"-UNDEBUG", "-DSYSCONFDIR=\"\\\"/etc/libnl\\\"\"", + "-D_NL_SYSCONFDIR_LIBNL=\"\\\"/usr/local/ect/libnl\\\"\"", + "-D_NL_PKGLIBDIR==\"\\\"/usr/local/lib/libnl\\\"\"", ] install_images = [ diff --git a/README.OpenSource b/README.OpenSource index fc55fec..cabdca6 100644 --- a/README.OpenSource +++ b/README.OpenSource @@ -1,11 +1,11 @@ [ { - "Name": "openEuler:libnl3", + "Name": "libnl", "License": "LGPL V2.1", "License File": "COPYING", - "Version Number": "3.7.0-2.oe2203sp3", - "Owner": "xusai4@huawei.com", - "Upstream URL": "https://repo.openeuler.org/openEuler-22.03-LTS-SP3/source/Packages/libnl3-3.7.0-2.oe2203sp3.src.rpm", + "Version Number": "3.11.0", + "Owner": "wujun156@huawei.com", + "Upstream URL": "https://github.com/thom311/libnl/archive/refs/tags/libnl3_11_0.tar.gz", "Description": "Providing APIs to netlink protocol based Linux kernel interfaces." } ] \ No newline at end of file diff --git a/README.md b/README.md index da8659e..509292a 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ The following patches is carried by the openEuler:libnl3 open source library: -slove-oh-update-sp3.patch + The following patches are added to solve the compilation problem under the OpenHarmony project: -solve-oh-compile-problem.patch +solve-oh-compile-problem3_11_0.patch #### Contribution diff --git a/README_ZH.md b/README_ZH.md index fcc02c9..a4b4677 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -11,10 +11,10 @@ #### patch包说明 以下patch包为openEuler:libnl3开源库本身携带 -slove-oh-update-sp3.patch + 以下patch包为解决在OpenHarmony工程下编译存在的问题自行添加 -solve-oh-compile-problem.patch +solve-oh-compile-problem3_11_0.patch #### 参与贡献 diff --git a/bundle.json b/bundle.json index 48d7b71..9248003 100644 --- a/bundle.json +++ b/bundle.json @@ -9,7 +9,7 @@ }, "dirs": {}, "scripts": {}, - "licensePath": "thirdparth/libnl-3.7.0/COPYING", + "licensePath": "thirdparth/libnl-libnl3.11.0/COPYING", "readmePath":{ "en": "README.md", "zh": "README_ZH.md" diff --git a/install.sh b/install.sh index ee5413f..3b0b0ee 100755 --- a/install.sh +++ b/install.sh @@ -8,13 +8,15 @@ set -e cd $1 -if [ -d "libnl-3.7.0" ];then - rm -rf libnl-3.7.0 +if [ -d "libnl" ];then + rm -rf libnl fi -tar xvf libnl-3.7.0.tar.gz -cd $1/libnl-3.7.0 +tar xvf libnl-libnl3_11_0.tar.gz +mv libnl-libnl3_11_0 libnl +cd $1/libnl +apt-get update +apt-get install autoconf automake libtool -y +./autogen.sh ./configure -patch -p1 < $1/slove-oh-update-sp3.patch --fuzz=0 --no-backup-if-mismatch -patch -p1 < $1/solve-oh-compile-problem.patch --fuzz=0 --no-backup-if-mismatch -patch -p1 < $1/slove-oh-bug-fix.patch --fuzz=0 --no-backup-if-mismatch +patch -p1 < $1/solve-oh-compile-problem3_11_0.patch --fuzz=0 --no-backup-if-mismatch exit 0 diff --git a/libnl-libnl3_11_0.tar.gz b/libnl-libnl3_11_0.tar.gz new file mode 100644 index 0000000..bb71dc4 Binary files /dev/null and b/libnl-libnl3_11_0.tar.gz differ diff --git a/solve-oh-compile-problem3_11_0.patch b/solve-oh-compile-problem3_11_0.patch new file mode 100644 index 0000000..3061e52 --- /dev/null +++ b/solve-oh-compile-problem3_11_0.patch @@ -0,0 +1,236 @@ +diff -urN libnl/lib/utils.c libnl-libnl3_11_0-new/lib/utils.c +--- libnl/lib/utils.c 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/lib/utils.c 2025-06-18 10:02:10.472222700 +0800 +@@ -279,8 +279,8 @@ + + int nl_rate2str(unsigned long long rate, int type, char *buf, size_t len) + { +- char *unit; +- double frac; ++ char *unit = NULL; ++ double frac = 0.0; + + switch (type) { + case NL_BYTE_RATE: +@@ -427,6 +427,7 @@ + } + + BUG(); ++ return buf; + } + + /** +diff -urN libnl/lib/route/mdb.c libnl-libnl3_11_0-new/lib/route/mdb.c +--- libnl/lib/route/mdb.c 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/lib/route/mdb.c 2025-06-18 10:08:22.230880000 +0800 +@@ -5,7 +5,7 @@ + + #include "nl-default.h" + +-#include ++#include + + #include + #include +diff -urN libnl/lib/route/neigh.c libnl-libnl3_11_0-new/lib/route/neigh.c +--- libnl/lib/route/neigh.c 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/lib/route/neigh.c 2025-06-18 10:14:10.647307300 +0800 +@@ -461,10 +461,12 @@ + neigh->ce_mask |= NEIGH_ATTR_NHID; + } + ++#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION + if (tb[NDA_FLAGS_EXT]) { + neigh->n_ext_flags = nla_get_u32(tb[NDA_FLAGS_EXT]); + neigh->ce_mask |= NEIGH_ATTR_EXT_FLAGS; + } ++#endif + + /* + * Get the bridge index for AF_BRIDGE family entries +@@ -777,6 +779,7 @@ + if (tmpl->ce_mask & NEIGH_ATTR_NHID) + NLA_PUT_U32(msg, NDA_NH_ID, tmpl->n_nhid); + ++#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION + if (tmpl->ce_mask & NEIGH_ATTR_EXT_FLAGS) { + /* The kernel does not allow setting the locked flag from + * userspace, so unset it in the request. */ +@@ -786,6 +789,7 @@ + if (ext_flags) + NLA_PUT_U32(msg, NDA_FLAGS_EXT, ext_flags); + } ++#endif + + *result = msg; + return 0; +diff -urN libnl/lib/route/link/bridge.c libnl-libnl3_11_0-new/lib/route/link/bridge.c +--- libnl/lib/route/link/bridge.c 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/lib/route/link/bridge.c 2025-06-18 10:21:45.632085400 +0800 +@@ -13,7 +13,7 @@ + + #include "nl-default.h" + +-#include ++#include + #include + + #include +@@ -40,6 +40,7 @@ + #define BRIDGE_ATTR_MST (1UL << 7) + + #define PRIV_FLAG_NEW_ATTRS (1UL << 0) ++#define RTEXT_FILTER_MST (1 << 7) + + struct bridge_data + { +@@ -248,9 +249,11 @@ + [IFLA_BRPORT_BCAST_FLOOD] = { .type = NLA_U8 }, + [IFLA_BRPORT_NEIGH_SUPPRESS] = { .type = NLA_U8 }, + [IFLA_BRPORT_ISOLATED] = { .type = NLA_U8 }, ++#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION + [IFLA_BRPORT_LOCKED] = { .type = NLA_U8 }, + [IFLA_BRPORT_MAB] = { .type = NLA_U8 }, + [IFLA_BRPORT_NEIGH_VLAN_SUPPRESS] = { .type = NLA_U8 }, ++#endif + }; + + static void check_flag(struct rtnl_link *link, struct nlattr *attrs[], +@@ -322,10 +325,12 @@ + check_flag(link, br_attrs, IFLA_BRPORT_NEIGH_SUPPRESS, + RTNL_BRIDGE_NEIGH_SUPPRESS); + check_flag(link, br_attrs, IFLA_BRPORT_ISOLATED, RTNL_BRIDGE_ISOLATED); ++#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION + check_flag(link, br_attrs, IFLA_BRPORT_LOCKED, RTNL_BRIDGE_LOCKED); + check_flag(link, br_attrs, IFLA_BRPORT_MAB, RTNL_BRIDGE_MAB); + check_flag(link, br_attrs, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, + RTNL_BRIDGE_NEIGH_VLAN_SUPPRESS); ++#endif + + return 0; + } +@@ -720,6 +725,7 @@ + NLA_PUT_U8(msg, IFLA_BRPORT_ISOLATED, + !!(bd->b_flags & RTNL_BRIDGE_ISOLATED)); + } ++#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION + if (bd->b_flags_mask & RTNL_BRIDGE_LOCKED) { + NLA_PUT_U8(msg, IFLA_BRPORT_LOCKED, + !!(bd->b_flags & RTNL_BRIDGE_LOCKED)); +@@ -733,6 +739,7 @@ + !!(bd->b_flags & + RTNL_BRIDGE_NEIGH_VLAN_SUPPRESS)); + } ++#endif + } + + if (bd->ce_mask & BRIDGE_ATTR_COST) +diff -urN libnl/include/base/nl-base-utils.h libnl-libnl3_11_0-new/include/base/nl-base-utils.h +--- libnl/include/base/nl-base-utils.h 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/include/base/nl-base-utils.h 2025-06-18 10:32:27.489011600 +0800 +@@ -20,6 +20,11 @@ + #include + #include + ++#define NTF_EXT_MANAGED (1 << 0) ++#define NTF_EXT_LOCKED (1 << 1) ++ ++#define NDA_MAX (__NDA_MAX - 1) ++ + #ifndef DISABLE_PTHREADS + #include + #endif +@@ -162,10 +167,8 @@ + + #define _nl_assert_addr_family(addr_family) \ + do { \ +- typeof(addr_family) _addr_family = (addr_family); \ +- \ +- _nl_assert(_addr_family == AF_INET || \ +- _addr_family == AF_INET6); \ ++ _nl_assert(addr_family == AF_INET || \ ++ addr_family == AF_INET6); \ + } while (0) + + /*****************************************************************************/ +@@ -185,9 +188,11 @@ + + /*****************************************************************************/ + ++#ifndef ARRAY_SIZE + #define _NL_N_ELEMENTS(arr) (sizeof(arr) / sizeof((arr)[0])) + + #define ARRAY_SIZE(arr) _NL_N_ELEMENTS(arr) ++#endif + + /*****************************************************************************/ + +@@ -258,7 +263,7 @@ + return _nl_memcmp(s1, s2, len) == 0; + } + +-static inline void *_nl_memcpy(void *restrict dest, const void *restrict src, ++static inline void *_nl_memcpy(void *__restrict dest, const void *__restrict src, + size_t n) + { + /* Workaround undefined behavior in memcpy() with NULL pointers. */ +@@ -703,7 +708,7 @@ + static inline char *_nl_inet_ntop_dup(int addr_family, const void *addr) + { + return (char *)_nl_inet_ntop(addr_family, addr, +- malloc((addr_family == AF_INET) ? ++ (char *)malloc((addr_family == AF_INET) ? + INET_ADDRSTRLEN : + INET6_ADDRSTRLEN)); + } +diff -urN libnl/include/config.h libnl-libnl3_11_0-new/include/config.h +--- libnl/include/config.h 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/include/config.h 2025-06-18 10:32:27.489011600 +0800 +@@ -6,11 +6,11 @@ + + /* Define to 1 if you have the declaration of `getprotobyname_r', and to 0 if + you don't. */ +-#define HAVE_DECL_GETPROTOBYNAME_R 1 ++#define HAVE_DECL_GETPROTOBYNAME_R 0 + + /* Define to 1 if you have the declaration of `getprotobynumber_r', and to 0 + if you don't. */ +-#define HAVE_DECL_GETPROTOBYNUMBER_R 1 ++#define HAVE_DECL_GETPROTOBYNUMBER_R 0 + + /* Define to 1 if you have the header file. */ + #define HAVE_DLFCN_H 1 +@@ -34,7 +34,7 @@ + #define HAVE_STDLIB_H 1 + + /* Define to 1 if you have the `strerror_l' function. */ +-#define HAVE_STRERROR_L 1 ++#define HAVE_STRERROR_L 0 + + /* Define to 1 if you have the header file. */ + #define HAVE_STRINGS_H 1 +diff -urN libnl/include/nl-priv-dynamic-core/nl-core.h libnl-libnl3_11_0-new/include/nl-priv-dynamic-core/nl-core.h +--- libnl/include/nl-priv-dynamic-core/nl-core.h 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/include/nl-priv-dynamic-core/nl-core.h 2025-06-19 19:37:09.297502900 +0800 +@@ -6,6 +6,8 @@ + #ifndef __NL_SHARED_CORE_NL_CORE_H__ + #define __NL_SHARED_CORE_NL_CORE_H__ + ++#include ++ + #define NL_SOCK_PASSCRED (1 << 1) + #define NL_OWN_PORT (1 << 2) + #define NL_MSG_PEEK (1 << 3) +diff -urN libnl/src/lib/utils.c libnl-libnl3_11_0-new/src/lib/utils.c +--- libnl/src/lib/utils.c 2024-10-30 15:13:01.000000000 +0800 ++++ libnl-libnl3_11_0-new/src/lib/utils.c 2025-09-01 21:06:31.381794800 +0800 +@@ -222,9 +222,6 @@ + { + char path[FILENAME_MAX+1]; + +- snprintf(path, sizeof(path), "%s/%s/%s.so", +- _NL_PKGLIBDIR, prefix, name); +- + #ifdef HAVE_DLFCN_H + { + void *handle;