public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* Re: libabigail tool - Android vs. Sourceware
       [not found] <MN2PR12MB3278E817196A3A94EE0A982EBB969@MN2PR12MB3278.namprd12.prod.outlook.com>
@ 2021-03-05 15:39 ` Matthias Maennich
  2021-03-09 13:26   ` Sachin Nikam
  0 siblings, 1 reply; 4+ messages in thread
From: Matthias Maennich @ 2021-03-05 15:39 UTC (permalink / raw)
  To: Sachin Nikam
  Cc: Android Kernel Team, Ketan Patil, Nicolin Chen, Bharat Nihalani,
	Bryan Huntsman, libabigail, dodji

Hi,

Cc: libabigail@sourceware.org, since you asked there first.

On Fri, Mar 05, 2021 at 02:57:49PM +0000, Sachin Nikam wrote:
>Hi,
>
>I want to know how much android libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/README.md> tool is diverged from https://www.sourceware.org/libabigail/wiki
>
>What are the enhancements or bug fixes done in android libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/README.md> tool from sourceware tool?

It is not too much different actually. The biggest chunk is the replaced
symtab reader implementation. For the clang-built Android kernels with
LTO/CFI and some more interesting features, we needed to rework the
(k)symtab reader. The patch series has been posted and is currently up for
review, see https://sourceware.org/pipermail/libabigail/2021q1/003089.html.
Those are alone 20 patches.

Here is roughly what we have on top in
https://android.googlesource.com/platform/external/libabigail/:

Android specific patches for integration, compliance, build:
   3e7ace7f4dce Initial empty repository # empty
   7d03a8db4b76 Add metadata files
   c4c81432a780 Add support for external_updater automatic updates
   a1a321d23b91 Add soong build description for building abidiff and abidw
   03dcda4bebc0 fix build for abidw
   a28258465e4c Limit to 64-bit binaries.
   4d5ac23a458d Disable libabigail for darwin.
   16afa280a204 Drop unnecessary upstream files that impose RESTRICTED licensing
   6b3d6ad6fa31 Add LOCAL_LICENSE_KINDS to external/libabigail

Alternative Symtab reader:
   5f49f81f2850 abg-cxx-compat: add simplified version of std::optional
   204eaf651a17 abg-ir: elf_symbol: add is_in_ksymtab field
   bda7f9443f09 abg-ir: elf_symbol: add is_suppressed field
   8adb9b8ee052 dwarf-reader split: create abg-symtab-reader.{h,cc} and test case
   66d2bede37c6 Refactor ELF symbol table reading by adding a new symtab reader
   5a745592194d Integrate new symtab reader into corpus and read_context
   97308e77a945 corpus: make get_(undefined_)?_(var|fun)_symbols use the new symtab
   cb24effa3948 corpus: make get_unreferenced_(function|variable)_symbols use the new symtab
   4b5a95c4a5f3 abg-reader: avoid using the (var|function)_symbol_map
   ab9401599724 dwarf-reader: read_context: use new symtab in *_symbols_is_exported
   4d7075fd0b22 Switch kernel stuff over to new symtab and drop unused code
   76e19dbc66c8 abg-elf-helpers: migrate ppc64 specific helpers
   96872a3abb46 symtab_reader: add support for ppc64 ELFv1 binaries
   ede9a107a71f abg-corpus: remove symbol maps and their setters
   4dcbf6520983 dwarf reader: drop (now) unused code related symbol table reading
   a4015cf2f9ef test-symtab: add tests for whitelisted functions
   a82212c4152f symtab/dwarf-reader: allow hinting of main symbols for aliases
   51bac872c0bb dwarf-reader/writer: consider aliases when dealing with suppressions
   7ac9bb8f1181 symtab: Add support for MODVERSIONS (CRC checksums)
   1b4e95ec43c2 abg-writer.cc: fix write_elf_symbol_reference loop
   c1db8a7be692 abidiff: better whitespace in symbol diff report

Misc additions and fixes:
   7e7a9979bc8a KMI Whitelists: allow alternative section suffix 'symbol_list'
   3b707b3e8e13 abidiff: Flag indirect struct/union changes.

Cheers,
Matthias

>
>Best Regards,
>Sachin Nikam.
>
>-- 
>To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: libabigail tool - Android vs. Sourceware
  2021-03-05 15:39 ` libabigail tool - Android vs. Sourceware Matthias Maennich
@ 2021-03-09 13:26   ` Sachin Nikam
  2021-03-09 15:42     ` Matthias Maennich
  0 siblings, 1 reply; 4+ messages in thread
From: Sachin Nikam @ 2021-03-09 13:26 UTC (permalink / raw)
  To: Matthias Maennich
  Cc: Android Kernel Team, Ketan Patil, Nicolin Chen, Bharat Nihalani,
	Bryan Huntsman, libabigail, dodji

Which libabigail tool do you recommend us to use to monitor and enforce ABI:
from https://android.googlesource.com/  or https://www.sourceware.org/libabigail/ ?


-----Original Message-----
From: Matthias Maennich <maennich@google.com> 
Sent: Friday, March 5, 2021 9:10 PM
To: Sachin Nikam <Snikam@nvidia.com>
Cc: Android Kernel Team <kernel-team@android.com>; Ketan Patil <ketanp@nvidia.com>; Nicolin Chen <nicolinc@nvidia.com>; Bharat Nihalani <bnihalani@nvidia.com>; Bryan Huntsman <bhuntsman@nvidia.com>; libabigail@sourceware.org; dodji@redhat.com
Subject: Re: libabigail tool - Android vs. Sourceware

External email: Use caution opening links or attachments


Hi,

Cc: libabigail@sourceware.org, since you asked there first.

On Fri, Mar 05, 2021 at 02:57:49PM +0000, Sachin Nikam wrote:
>Hi,
>
>I want to know how much android 
>libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/m
>aster/abi/README.md> tool is diverged from 
>https://www.sourceware.org/libabigail/wiki
>
>What are the enhancements or bug fixes done in android libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/README.md> tool from sourceware tool?

It is not too much different actually. The biggest chunk is the replaced symtab reader implementation. For the clang-built Android kernels with LTO/CFI and some more interesting features, we needed to rework the (k)symtab reader. The patch series has been posted and is currently up for review, see https://sourceware.org/pipermail/libabigail/2021q1/003089.html.
Those are alone 20 patches.

Here is roughly what we have on top in
https://android.googlesource.com/platform/external/libabigail/:

Android specific patches for integration, compliance, build:
   3e7ace7f4dce Initial empty repository # empty
   7d03a8db4b76 Add metadata files
   c4c81432a780 Add support for external_updater automatic updates
   a1a321d23b91 Add soong build description for building abidiff and abidw
   03dcda4bebc0 fix build for abidw
   a28258465e4c Limit to 64-bit binaries.
   4d5ac23a458d Disable libabigail for darwin.
   16afa280a204 Drop unnecessary upstream files that impose RESTRICTED licensing
   6b3d6ad6fa31 Add LOCAL_LICENSE_KINDS to external/libabigail

Alternative Symtab reader:
   5f49f81f2850 abg-cxx-compat: add simplified version of std::optional
   204eaf651a17 abg-ir: elf_symbol: add is_in_ksymtab field
   bda7f9443f09 abg-ir: elf_symbol: add is_suppressed field
   8adb9b8ee052 dwarf-reader split: create abg-symtab-reader.{h,cc} and test case
   66d2bede37c6 Refactor ELF symbol table reading by adding a new symtab reader
   5a745592194d Integrate new symtab reader into corpus and read_context
   97308e77a945 corpus: make get_(undefined_)?_(var|fun)_symbols use the new symtab
   cb24effa3948 corpus: make get_unreferenced_(function|variable)_symbols use the new symtab
   4b5a95c4a5f3 abg-reader: avoid using the (var|function)_symbol_map
   ab9401599724 dwarf-reader: read_context: use new symtab in *_symbols_is_exported
   4d7075fd0b22 Switch kernel stuff over to new symtab and drop unused code
   76e19dbc66c8 abg-elf-helpers: migrate ppc64 specific helpers
   96872a3abb46 symtab_reader: add support for ppc64 ELFv1 binaries
   ede9a107a71f abg-corpus: remove symbol maps and their setters
   4dcbf6520983 dwarf reader: drop (now) unused code related symbol table reading
   a4015cf2f9ef test-symtab: add tests for whitelisted functions
   a82212c4152f symtab/dwarf-reader: allow hinting of main symbols for aliases
   51bac872c0bb dwarf-reader/writer: consider aliases when dealing with suppressions
   7ac9bb8f1181 symtab: Add support for MODVERSIONS (CRC checksums)
   1b4e95ec43c2 abg-writer.cc: fix write_elf_symbol_reference loop
   c1db8a7be692 abidiff: better whitespace in symbol diff report

Misc additions and fixes:
   7e7a9979bc8a KMI Whitelists: allow alternative section suffix 'symbol_list'
   3b707b3e8e13 abidiff: Flag indirect struct/union changes.

Cheers,
Matthias

>
>Best Regards,
>Sachin Nikam.
>
>--
>To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: libabigail tool - Android vs. Sourceware
  2021-03-09 13:26   ` Sachin Nikam
@ 2021-03-09 15:42     ` Matthias Maennich
  2021-03-09 16:16       ` Sachin Nikam
  0 siblings, 1 reply; 4+ messages in thread
From: Matthias Maennich @ 2021-03-09 15:42 UTC (permalink / raw)
  To: Sachin Nikam
  Cc: Android Kernel Team, Ketan Patil, Nicolin Chen, Bharat Nihalani,
	Bryan Huntsman, libabigail, dodji

On Tue, Mar 09, 2021 at 01:26:28PM +0000, Sachin Nikam wrote:
>Which libabigail tool do you recommend us to use to monitor and enforce ABI:
>from https://android.googlesource.com/  or https://www.sourceware.org/libabigail/ ?

It very much depends on what you want to do. :-)

The Android version of libabigail is downstream of sourceware and
receives regular merges. At the same time, our patches are posted to the
list and get integrated over time. At the time of writing this, the
first two patches of the "Symtab reader" series have been merged
upstream.

If you are working on Android Kernels, the Android version of libabigail
might be required. Similarly, if you are making use of Clang compilers
to build your kernels.

If you do not care about the above, you might be just fine with the
latest (released) version of upstream libabigail.

Cheers,
Matthias

>
>
>-----Original Message-----
>From: Matthias Maennich <maennich@google.com>
>Sent: Friday, March 5, 2021 9:10 PM
>To: Sachin Nikam <Snikam@nvidia.com>
>Cc: Android Kernel Team <kernel-team@android.com>; Ketan Patil <ketanp@nvidia.com>; Nicolin Chen <nicolinc@nvidia.com>; Bharat Nihalani <bnihalani@nvidia.com>; Bryan Huntsman <bhuntsman@nvidia.com>; libabigail@sourceware.org; dodji@redhat.com
>Subject: Re: libabigail tool - Android vs. Sourceware
>
>External email: Use caution opening links or attachments
>
>
>Hi,
>
>Cc: libabigail@sourceware.org, since you asked there first.
>
>On Fri, Mar 05, 2021 at 02:57:49PM +0000, Sachin Nikam wrote:
>>Hi,
>>
>>I want to know how much android
>>libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/m
>>aster/abi/README.md> tool is diverged from
>>https://www.sourceware.org/libabigail/wiki
>>
>>What are the enhancements or bug fixes done in android libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/README.md> tool from sourceware tool?
>
>It is not too much different actually. The biggest chunk is the replaced symtab reader implementation. For the clang-built Android kernels with LTO/CFI and some more interesting features, we needed to rework the (k)symtab reader. The patch series has been posted and is currently up for review, see https://sourceware.org/pipermail/libabigail/2021q1/003089.html.
>Those are alone 20 patches.
>
>Here is roughly what we have on top in
>https://android.googlesource.com/platform/external/libabigail/:
>
>Android specific patches for integration, compliance, build:
>   3e7ace7f4dce Initial empty repository # empty
>   7d03a8db4b76 Add metadata files
>   c4c81432a780 Add support for external_updater automatic updates
>   a1a321d23b91 Add soong build description for building abidiff and abidw
>   03dcda4bebc0 fix build for abidw
>   a28258465e4c Limit to 64-bit binaries.
>   4d5ac23a458d Disable libabigail for darwin.
>   16afa280a204 Drop unnecessary upstream files that impose RESTRICTED licensing
>   6b3d6ad6fa31 Add LOCAL_LICENSE_KINDS to external/libabigail
>
>Alternative Symtab reader:
>   5f49f81f2850 abg-cxx-compat: add simplified version of std::optional
>   204eaf651a17 abg-ir: elf_symbol: add is_in_ksymtab field
>   bda7f9443f09 abg-ir: elf_symbol: add is_suppressed field
>   8adb9b8ee052 dwarf-reader split: create abg-symtab-reader.{h,cc} and test case
>   66d2bede37c6 Refactor ELF symbol table reading by adding a new symtab reader
>   5a745592194d Integrate new symtab reader into corpus and read_context
>   97308e77a945 corpus: make get_(undefined_)?_(var|fun)_symbols use the new symtab
>   cb24effa3948 corpus: make get_unreferenced_(function|variable)_symbols use the new symtab
>   4b5a95c4a5f3 abg-reader: avoid using the (var|function)_symbol_map
>   ab9401599724 dwarf-reader: read_context: use new symtab in *_symbols_is_exported
>   4d7075fd0b22 Switch kernel stuff over to new symtab and drop unused code
>   76e19dbc66c8 abg-elf-helpers: migrate ppc64 specific helpers
>   96872a3abb46 symtab_reader: add support for ppc64 ELFv1 binaries
>   ede9a107a71f abg-corpus: remove symbol maps and their setters
>   4dcbf6520983 dwarf reader: drop (now) unused code related symbol table reading
>   a4015cf2f9ef test-symtab: add tests for whitelisted functions
>   a82212c4152f symtab/dwarf-reader: allow hinting of main symbols for aliases
>   51bac872c0bb dwarf-reader/writer: consider aliases when dealing with suppressions
>   7ac9bb8f1181 symtab: Add support for MODVERSIONS (CRC checksums)
>   1b4e95ec43c2 abg-writer.cc: fix write_elf_symbol_reference loop
>   c1db8a7be692 abidiff: better whitespace in symbol diff report
>
>Misc additions and fixes:
>   7e7a9979bc8a KMI Whitelists: allow alternative section suffix 'symbol_list'
>   3b707b3e8e13 abidiff: Flag indirect struct/union changes.
>
>Cheers,
>Matthias
>
>>
>>Best Regards,
>>Sachin Nikam.
>>
>>--
>>To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: libabigail tool - Android vs. Sourceware
  2021-03-09 15:42     ` Matthias Maennich
@ 2021-03-09 16:16       ` Sachin Nikam
  0 siblings, 0 replies; 4+ messages in thread
From: Sachin Nikam @ 2021-03-09 16:16 UTC (permalink / raw)
  To: Matthias Maennich
  Cc: Android Kernel Team, Ketan Patil, Nicolin Chen, Bharat Nihalani,
	Bryan Huntsman, libabigail, dodji

Thanks for the info Matthias!

-----Original Message-----
From: Matthias Maennich <maennich@google.com> 
Sent: Tuesday, March 9, 2021 9:13 PM
To: Sachin Nikam <Snikam@nvidia.com>
Cc: Android Kernel Team <kernel-team@android.com>; Ketan Patil <ketanp@nvidia.com>; Nicolin Chen <nicolinc@nvidia.com>; Bharat Nihalani <bnihalani@nvidia.com>; Bryan Huntsman <bhuntsman@nvidia.com>; libabigail@sourceware.org; dodji@redhat.com
Subject: Re: libabigail tool - Android vs. Sourceware

External email: Use caution opening links or attachments


On Tue, Mar 09, 2021 at 01:26:28PM +0000, Sachin Nikam wrote:
>Which libabigail tool do you recommend us to use to monitor and enforce ABI:
>from https://android.googlesource.com/  or https://www.sourceware.org/libabigail/ ?

It very much depends on what you want to do. :-)

The Android version of libabigail is downstream of sourceware and receives regular merges. At the same time, our patches are posted to the list and get integrated over time. At the time of writing this, the first two patches of the "Symtab reader" series have been merged upstream.

If you are working on Android Kernels, the Android version of libabigail might be required. Similarly, if you are making use of Clang compilers to build your kernels.

If you do not care about the above, you might be just fine with the latest (released) version of upstream libabigail.

Cheers,
Matthias

>
>
>-----Original Message-----
>From: Matthias Maennich <maennich@google.com>
>Sent: Friday, March 5, 2021 9:10 PM
>To: Sachin Nikam <Snikam@nvidia.com>
>Cc: Android Kernel Team <kernel-team@android.com>; Ketan Patil 
><ketanp@nvidia.com>; Nicolin Chen <nicolinc@nvidia.com>; Bharat 
>Nihalani <bnihalani@nvidia.com>; Bryan Huntsman <bhuntsman@nvidia.com>; 
>libabigail@sourceware.org; dodji@redhat.com
>Subject: Re: libabigail tool - Android vs. Sourceware
>
>External email: Use caution opening links or attachments
>
>
>Hi,
>
>Cc: libabigail@sourceware.org, since you asked there first.
>
>On Fri, Mar 05, 2021 at 02:57:49PM +0000, Sachin Nikam wrote:
>>Hi,
>>
>>I want to know how much android
>>libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/
>>m aster/abi/README.md> tool is diverged from 
>>https://www.sourceware.org/libabigail/wiki
>>
>>What are the enhancements or bug fixes done in android libabigail<https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/README.md> tool from sourceware tool?
>
>It is not too much different actually. The biggest chunk is the replaced symtab reader implementation. For the clang-built Android kernels with LTO/CFI and some more interesting features, we needed to rework the (k)symtab reader. The patch series has been posted and is currently up for review, see https://sourceware.org/pipermail/libabigail/2021q1/003089.html.
>Those are alone 20 patches.
>
>Here is roughly what we have on top in
>https://android.googlesource.com/platform/external/libabigail/:
>
>Android specific patches for integration, compliance, build:
>   3e7ace7f4dce Initial empty repository # empty
>   7d03a8db4b76 Add metadata files
>   c4c81432a780 Add support for external_updater automatic updates
>   a1a321d23b91 Add soong build description for building abidiff and abidw
>   03dcda4bebc0 fix build for abidw
>   a28258465e4c Limit to 64-bit binaries.
>   4d5ac23a458d Disable libabigail for darwin.
>   16afa280a204 Drop unnecessary upstream files that impose RESTRICTED licensing
>   6b3d6ad6fa31 Add LOCAL_LICENSE_KINDS to external/libabigail
>
>Alternative Symtab reader:
>   5f49f81f2850 abg-cxx-compat: add simplified version of std::optional
>   204eaf651a17 abg-ir: elf_symbol: add is_in_ksymtab field
>   bda7f9443f09 abg-ir: elf_symbol: add is_suppressed field
>   8adb9b8ee052 dwarf-reader split: create abg-symtab-reader.{h,cc} and test case
>   66d2bede37c6 Refactor ELF symbol table reading by adding a new symtab reader
>   5a745592194d Integrate new symtab reader into corpus and read_context
>   97308e77a945 corpus: make get_(undefined_)?_(var|fun)_symbols use the new symtab
>   cb24effa3948 corpus: make get_unreferenced_(function|variable)_symbols use the new symtab
>   4b5a95c4a5f3 abg-reader: avoid using the (var|function)_symbol_map
>   ab9401599724 dwarf-reader: read_context: use new symtab in *_symbols_is_exported
>   4d7075fd0b22 Switch kernel stuff over to new symtab and drop unused code
>   76e19dbc66c8 abg-elf-helpers: migrate ppc64 specific helpers
>   96872a3abb46 symtab_reader: add support for ppc64 ELFv1 binaries
>   ede9a107a71f abg-corpus: remove symbol maps and their setters
>   4dcbf6520983 dwarf reader: drop (now) unused code related symbol table reading
>   a4015cf2f9ef test-symtab: add tests for whitelisted functions
>   a82212c4152f symtab/dwarf-reader: allow hinting of main symbols for aliases
>   51bac872c0bb dwarf-reader/writer: consider aliases when dealing with suppressions
>   7ac9bb8f1181 symtab: Add support for MODVERSIONS (CRC checksums)
>   1b4e95ec43c2 abg-writer.cc: fix write_elf_symbol_reference loop
>   c1db8a7be692 abidiff: better whitespace in symbol diff report
>
>Misc additions and fixes:
>   7e7a9979bc8a KMI Whitelists: allow alternative section suffix 'symbol_list'
>   3b707b3e8e13 abidiff: Flag indirect struct/union changes.
>
>Cheers,
>Matthias
>
>>
>>Best Regards,
>>Sachin Nikam.
>>
>>--
>>To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-03-09 16:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <MN2PR12MB3278E817196A3A94EE0A982EBB969@MN2PR12MB3278.namprd12.prod.outlook.com>
2021-03-05 15:39 ` libabigail tool - Android vs. Sourceware Matthias Maennich
2021-03-09 13:26   ` Sachin Nikam
2021-03-09 15:42     ` Matthias Maennich
2021-03-09 16:16       ` Sachin Nikam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).