-
Notifications
You must be signed in to change notification settings - Fork 51
/
NEWS
1379 lines (1263 loc) · 86.6 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
v1.27
Tue Jun 11 2024
f62409e1190c2cb4 dwarf_loader: Show the DIE offset when finding unexpected tag in die__process()
a9ae414fef421bde btf_loader: Initial support for BTF_KIND_DECL_TAG
d08776019ef6a561 pfunct: Disable collecting fn_stats when processing BTF
72e88f29c6f7e142 pahole: Inject kfunc decl tags into BTF
ce4d0bc0200e322b pahole: Add --btf_feature=decl_tag_kfuncs feature
e3b1c322503269d3 pahole: Save input filename separate from output
d5847615d0a5c082 pahole: Describe expected use of 'default' in the man page
912a8e3f3d19fa76 btf_encoder: Fix DWARF int type with greater-than-16 byte issue
a1f684fa018ddbfa pahole: Allow asking for extra features using the '+' prefix in --btf_features
31c6ec74952898a6 pahole: Factor out routine to process "--btf_features=default"
2046cc50578beb44 gobuffer: Add gobuffer__sort() helper
9aba4c9220eebf81 tests: update reproducible_build test to use "default"
0a9eceb3e5453aee pahole: Replace use of "all" with "default" for --btf_features
2a6b7ec7ce981c3d tests/reproducible_build: use --btf_features=all,reproducible_build
43bd3efa85656565 pahole: Add reproducible_build to --btf_features
e78c82db744eab77 pahole: Allow --btf_features to not participate in "all"
a9738ddc828d5ea0 tests/reproducible_build: Use --btf_features=all when encoding
d7edf9ae0388fb97 tests/reproducible_build: Validate the vmlinux file
c933676ce2780325 tests: Add a BTF reproducible generation test
dba7b5e847529cde pahole: Encode BTF serially in a reproducible build
edc23a0dae4f8996 core/dwarf_loader: Add functions to set state of CU processing
f632e757f7ba3f21 dwarf_loader: Add the cu to the cus list early, remove on LSK_DELETE
7ddb9cfb91cd3d65 core: Add cus__remove(), counterpart of cus__add()
6fa064b96853897c core: Add unlocked cus__add() variant
a7dee0e323ac5eef dwarf_loader: Remove unused 'thr_data' arg from dwarf_cus__create_and_process_cu()
620d419a430f8fd8 dwarf_loader: Create the cu/dcu pair in dwarf_cus__nextcu()
941cd9a15d09dd3c dwarf_loader: Introduce dwarf_cus__process_cu()
7a2509e7ea639014 dwarf_loader: Separate creating the cu/dcu pair from processing it
2d633d93cd4faf19 pahole: Disable BTF multithreaded encoded when doing reproducible builds
d6e05fd33cb9dc52 core: Allow asking for a reproducible build
4faf35b97c3427d1 fprintf: Remove bogus deduction of negative hole from size of previous field
47e83035c12c153b core: The padding in ancestor classes may be used in descendants
9442420a8c204460 fprintf: Update 'last' variable for DW_TAG_inheritance as well
c52e4b7af88da5ab fprintf: Update the 'last' member when not finding the type for the current member
1ecde473f9a07ac8 fprintf: Don't ignore DW_TAG_inheritance in the sum of members check
f32ec0c79f3e8065 btf_encoder: Dynamically allocate the vars array for percpu variables
554c5e6a2736e0b6 PKG-MAINTAINERS: Add file with known pahole distro package maintainers
v1.26
Tue Feb 27 2024
ba8f6eb0b6b67c6e NEWS: Add missing list of changes for v1.25
90201c2bde4b0ca8 prefcnt: cus__load_files() requires a non NULL conf_load
f86ed770b5396cd5 dtagnames: cus__load_files() requires a non NULL conf_load
b2e0f084eca03613 syscse: cus__load_files() requires a non NULL conf_load
461f61ebaf8f3108 dwarf_loader: Print the line number in addition to the function when not finding the abstract origin
6e665da56c78d436 pahole: Wait to find a DWARF CU with both the class and the type_enum
be638365781ed0c8 pahole: Improve error message when not resolving symbolic names in filters
e18ef2fed1b1a2c5 pahole: Implement --contains_enumerator=ENUMERATOR_NAME
7146ad04b72b08a5 pahole: Do not use -1 to mean that a enumerator wasn't found in an enumeration
97dce38eae062cf9 core: Introduce cu__for_each_enumeration()
786ed0aa2ff5fe67 btfdiff: Do type expansion to cover "private" types and enumerations
9661c589cae83c6b btf_loader: Fix loading of 32-bit signed enums
a25293a66b737263 btfdiff: Parallelize loading BTF and DWARF
e52cf114039af8f3 fprintf: When expanding types do it for union typedefs as well
d05d4f528d08da06 fprintf: Factor out the fprintf of a union declaration, for reuse
f97c080d4aac4f8f fprintf: When expanding types do it for struct typedefs as well
eb4f49bca27fcca2 fprintf: Add missing space after expanding a structure for a struct member
0064b74c5ef0f358 fprintf: When expanding types do it for enums as well
1fd08c0f0021e7fb fprintf: Print number of bit paddings in class member types
4fa81a30b9ca3b78 fprintf: Print number of bit holes in class member types
85bdd96404efca19 fprintf: Print number of holes in class member types
08fc8e3285733ec8 fprintf: Introduce method to print info about type of last member
bd8d0536b4352b5d fprintf: Introduce struct to account holes in class member types
fdd815151054d840 pahole: Make sure the features string is NUL terminated
884c43ea82a154ce CMakeList.txt: Bump version to the upcoming 1.26 release, not out of the door yet
c129fa7579483bba pahole: Add --btf_features_strict to reject unknown BTF features
74a238a4368223c9 pahole: Add --supported_btf_features
7bc9b9975545ab53 pahole: Add --btf_features support
79e9df515e4d3e89 dwarves: Move ARRAY_SIZE() to dwarves.h
f5c6c1365e7bb3dc btf_encoder, pahole: Move BTF encoding options into 'struct conf_load'
37e3bf08e0314efa pahole: Don't keep structs in multiple RB trees
d65499a8605c224b README: Remove old comments about ancient distros and add 'git submodule' instruction
0a1944b19569c4f9 spec: Migrate license to a SPDX standardized one
31bc0d7410572f6e dwarf_loader: DW_TAG_subroutine_type may have a DW_AT_byte_size
bfa033b07f50a202 pdwtags: Print DW_TAG_constant tags
afca84ff989d9729 fprintf: Add DW_TAG_constant pretty printer (constant__fprintf)
cb7eb753694be3e8 dwarf_loader: Add support for DW_TAG_constant
v1.25
Thu Apr 13 2023
eab23ebd2ce22b3a fprintf: Fix `*` not being printed for pointers with btf_type_tag
c969e4969ccd2e7c btf_loader: A hack for BTF import of btf_type_tag attributes
40ebd8b9e3312d0a fprintf: Correct names for types with btf_type_tag attribute
4d17096076b2351f btf_encoder: Compare functions via prototypes not parameter names
82730394195276ac fprintf: Support skipping modifier
d184aaa125ea40ff fprintf: Generalize function prototype print to support passing conf
a9498899109d3be1 dwarf_loader: Fix for BTF id drift caused by adding unspecified types
eeeab1c9e8b85fc7 fprintf: Support DW_TAG_LLVM_annotation in dwarf_tag_name()
4ec4b64bd501986b CMakeLists.txt: Call cmake_minimum_required() before project()
111dfd2cee118892 dwarf_loader: Only mark parameter as using an unexpected register when it does
5851040e2468ba04 dwarf_loader: Fix parameter location retrieval for location lists
721ca66d5be462b2 dwarf_loader: Fix detection of struct parameters
ef68019c357845b4 pahole: Update man page for options also
d58c61498ea78064 pahole: Update descriptions for btf_gen_optimized, skip_encoding_btf_inconsistent_proto
9b2abc1c7a16c39d btf_encoder: Exclude functions with unexpected param register use not optimizations
a53c58158b761f8f dwarf_loader: Mark functions that do not use expected registers for params
431df45378ef00f3 btfdiff: Exclude Rust CUs since those are not yet being converted to BTF on the Linux kernel
1231b6b9b4d88e00 dwarf_loader: Fix sorting of Rust structs
c4eb1897d1f3841d core: Check that we're adding DW_TAG_member sorted by byte offset
b53d430aeab416e7 btf_encoder: Ensure ELF function representation is fully initialized
a3b47e41656d21e7 CMakeList.txt: Bump version to the upcoming 1.25 release, not out of the door yet
f104790698ae93f9 btf_encoder: Support delaying function addition to check for function prototype inconsistencies
6d95d162c6c804c4 btf_encoder: Represent "."-suffixed functions (".isra.0") in BTF
c8e8dbcd71507618 btf_encoder: Rework btf_encoders__*() API to allow traversal of encoders
d381cc7458c53fdf btf_encoder: Refactor function addition into dedicated btf_encoder__add_func
52b25808e44a8e7f btf_encoder: Store type_id_off, unspecified type in encoder
75939e655a797896 dwarf_loader: Help spotting functions with optimized-out parameters
2b5cb9bc0e905811 pahole: Sync with libbpf-1.1
45c044860c2abce7 dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernel
74f21ed08e4313f0 pahole: Set libbpf debug printer in -V mode
bc1538dcb14bc4d9 pahole: Use type__fprintf() directly for --compile
51643cb290f91425 core: Introduce base_type__language_defined()
ba4bdc73806101dc dwarf_loader: DW_TAG_inlined_subroutine needs recoding by DW_AT_abstract_origin
02d67c51765dfbd5 pfunct: Use zalloc() to make the code more robust
cd4d2d251e9a7f98 pahole: Use zalloc() to make the code more robust
e5e24ada4f5578ae core: Use zalloc() to make the code more robust
b72f5188856df0ab dwarves: Zero-initialize struct cu in cu__new() to prevent incorrect BTF types
d85b86ecc1df4076 emit: Support DW_TAG_atomic_type when emitting definitions for a typedef
7d0bc9334d2f1143 fprintf: Support _Atomic typedefs
8894c04f00e4c702 fprintf: Move the "typedef " invariant printf to the start of typedef__fprintf()
3836623af1b5ff1f pahole: Allow skipping the emission of atomic typedefs
6bb5a1fa990f5bd6 emit: Allow skip emitting the atomic typedefs
8d2e166dd3d168d9 emit: Optionally pass a conf_fprintf struct to type_emissions__init
8c2b37ec71423067 emit: Emit typedefs for atomic_ prefixed base types
a4f3a79da8d4ed8b emit: cu__type() == NULL means "void"
bcc648a10cbcd0b9 btf_encoder: Encode DW_TAG_unspecified_type returning routines as void
cffe5e1f75e1612e core: Record if a CU has a DW_TAG_unspecified_type
75e0fe28bb02036d core: Add DW_TAG_unspecified_type to tag__is_tag_type() set
121a46a026afac19 btf_encoder: Store the CU being processed to avoid changing many functions
56bcfa9135312ffe fprintf: Emit "_Atomic" modifiers for DW_TAG_atomic_type
cf27a2b805f21356 core: Print more info on tag__assert_search_result()
d5012f7be79f1b81 btf_encoder: Add extra debug info for unsupported DWARF tags
79d9a783ea74797a pahole: Support '--lang/--lang_exclude=asm'
e819d737de88dc1f pahole: Add "btf" to the format-path option man page
f01e5f3a849558b8 dwarf_loader: Support DW_TAG_label outside DW_TAG_lexblock
b84120772df33f93 pahole: Allow --compile to work with DWARF in addition to with BTF
6fdb0140692acff0 dwarves: support DW_TAG_atomic_type
d7507140eab4bf9f emit: Don't mark a enum with nr_members == 0 as printed, its just a fwd decl
843fe9bfab4859b4 emit: Check if disambiguated struct/enum/union name was already emitted in a previous CU
f5857bd34b220a64 pahole: Honour --compile when -C is used
2bb968b567011f8a btf: Fix building with system libbpf
ea30d58a2329764b core: Conditionally define language encodings
v1.24
Sat Apr 8 2023
eab23ebd2ce22b3a fprintf: Fix `*` not being printed for pointers with btf_type_tag
c969e4969ccd2e7c btf_loader: A hack for BTF import of btf_type_tag attributes
40ebd8b9e3312d0a fprintf: Correct names for types with btf_type_tag attribute
4d17096076b2351f btf_encoder: Compare functions via prototypes not parameter names
82730394195276ac fprintf: Support skipping modifier
d184aaa125ea40ff fprintf: Generalize function prototype print to support passing conf
a9498899109d3be1 dwarf_loader: Fix for BTF id drift caused by adding unspecified types
eeeab1c9e8b85fc7 fprintf: Support DW_TAG_LLVM_annotation in dwarf_tag_name()
4ec4b64bd501986b CMakeLists.txt: Call cmake_minimum_required() before project()
111dfd2cee118892 dwarf_loader: Only mark parameter as using an unexpected register when it does
5851040e2468ba04 dwarf_loader: Fix parameter location retrieval for location lists
721ca66d5be462b2 dwarf_loader: Fix detection of struct parameters
ef68019c357845b4 pahole: Update man page for options also
d58c61498ea78064 pahole: Update descriptions for btf_gen_optimized, skip_encoding_btf_inconsistent_proto
9b2abc1c7a16c39d btf_encoder: Exclude functions with unexpected param register use not optimizations
a53c58158b761f8f dwarf_loader: Mark functions that do not use expected registers for params
431df45378ef00f3 btfdiff: Exclude Rust CUs since those are not yet being converted to BTF on the Linux kernel
1231b6b9b4d88e00 dwarf_loader: Fix sorting of Rust structs
c4eb1897d1f3841d core: Check that we're adding DW_TAG_member sorted by byte offset
b53d430aeab416e7 btf_encoder: Ensure ELF function representation is fully initialized
a3b47e41656d21e7 CMakeList.txt: Bump version to the upcoming 1.25 release, not out of the door yet
f104790698ae93f9 btf_encoder: Support delaying function addition to check for function prototype inconsistencies
6d95d162c6c804c4 btf_encoder: Represent "."-suffixed functions (".isra.0") in BTF
c8e8dbcd71507618 btf_encoder: Rework btf_encoders__*() API to allow traversal of encoders
d381cc7458c53fdf btf_encoder: Refactor function addition into dedicated btf_encoder__add_func
52b25808e44a8e7f btf_encoder: Store type_id_off, unspecified type in encoder
75939e655a797896 dwarf_loader: Help spotting functions with optimized-out parameters
2b5cb9bc0e905811 pahole: Sync with libbpf-1.1
45c044860c2abce7 dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernel
74f21ed08e4313f0 pahole: Set libbpf debug printer in -V mode
bc1538dcb14bc4d9 pahole: Use type__fprintf() directly for --compile
51643cb290f91425 core: Introduce base_type__language_defined()
ba4bdc73806101dc dwarf_loader: DW_TAG_inlined_subroutine needs recoding by DW_AT_abstract_origin
02d67c51765dfbd5 pfunct: Use zalloc() to make the code more robust
cd4d2d251e9a7f98 pahole: Use zalloc() to make the code more robust
e5e24ada4f5578ae core: Use zalloc() to make the code more robust
b72f5188856df0ab dwarves: Zero-initialize struct cu in cu__new() to prevent incorrect BTF types
d85b86ecc1df4076 emit: Support DW_TAG_atomic_type when emitting definitions for a typedef
7d0bc9334d2f1143 fprintf: Support _Atomic typedefs
8894c04f00e4c702 fprintf: Move the "typedef " invariant printf to the start of typedef__fprintf()
3836623af1b5ff1f pahole: Allow skipping the emission of atomic typedefs
6bb5a1fa990f5bd6 emit: Allow skip emitting the atomic typedefs
8d2e166dd3d168d9 emit: Optionally pass a conf_fprintf struct to type_emissions__init
8c2b37ec71423067 emit: Emit typedefs for atomic_ prefixed base types
a4f3a79da8d4ed8b emit: cu__type() == NULL means "void"
bcc648a10cbcd0b9 btf_encoder: Encode DW_TAG_unspecified_type returning routines as void
cffe5e1f75e1612e core: Record if a CU has a DW_TAG_unspecified_type
75e0fe28bb02036d core: Add DW_TAG_unspecified_type to tag__is_tag_type() set
121a46a026afac19 btf_encoder: Store the CU being processed to avoid changing many functions
56bcfa9135312ffe fprintf: Emit "_Atomic" modifiers for DW_TAG_atomic_type
cf27a2b805f21356 core: Print more info on tag__assert_search_result()
d5012f7be79f1b81 btf_encoder: Add extra debug info for unsupported DWARF tags
79d9a783ea74797a pahole: Support '--lang/--lang_exclude=asm'
e819d737de88dc1f pahole: Add "btf" to the format-path option man page
f01e5f3a849558b8 dwarf_loader: Support DW_TAG_label outside DW_TAG_lexblock
b84120772df33f93 pahole: Allow --compile to work with DWARF in addition to with BTF
6fdb0140692acff0 dwarves: support DW_TAG_atomic_type
d7507140eab4bf9f emit: Don't mark a enum with nr_members == 0 as printed, its just a fwd decl
843fe9bfab4859b4 emit: Check if disambiguated struct/enum/union name was already emitted in a previous CU
f5857bd34b220a64 pahole: Honour --compile when -C is used
2bb968b567011f8a btf: Fix building with system libbpf
ea30d58a2329764b core: Conditionally define language encodings
Wed Aug 17 2022
d6c952893b1bbea9 dwarf_loader: Encode char type as signed
23342fef5e5f6070 dwarf_loader: Fix elfutils dwfl_getmodules() error checking
9712d9ec929fb6b3 btf_loader: Add support to BTF_KIND_ENUM64
35a11221b305a520 btf: Support BTF_KIND_ENUM64
3aa68ba050d4ddc4 libbpf: Sync with latest libbpf repo
c3d6522e0499c5b0 fprintf: Fix plural/singular when printing cacheline boundary
384a16a011226163 btf_encoder: Normalize array index type for parallel dwarf loading case
d9e36dd9dd2a526a libbpf: Sync with latest libbpf repo
49358dfe2aaae4e9 pahole: Add --lang_exclude to allow skipping compilation units written in some languages
8ee363790b743728 pahole: Introduce --lang to ask for only compilation units written in some languages
c3f2fe2f6a81f13c core: Add string to id language lookup method
3d0dfe0610517ff6 pahole: Don't try encode BTF when all CUs were filtered
2730ef6965efd8e6 fprintf: preserve conf_fprintf pointer in tag__ptr_name
1bc98ed290d2c833 btf_encoder: Collect info of per-cpu variables from threads
31df013b70540072 dwarves: Set errno if load fails in cus__load_files()
f952a6f69f9508c8 pahole: Avoid segfault when parsing bogus file
65d7273668ded59b pahole: Introduce --compile to produce a compilable output
4d004e2314f3252e core: Ditch 'dwarves__active_loader' extern declaration, it was nuked
4f332dbfd02072e4 emit: Notice type shadowing, i.e. multiple types with the same name (enum, struct, union, etc)
0a82f74ce25a5904 core: Make type->packed_attributes_inferred a one bit member
fac821246c582299 core: type->declaration is just one bit, make it a bitfield member
742f04f89da03665 emit: Search for data structures using its type in addition to its name
32cc1481721c4b11 fprintf: Consider enumerations without members as forward declarations
6afc296eeb180e25 emit: Fix printing typedef of nameless struct/union
49a2dd657728675b fprintf: Check if conf->conf_fprintf is not NULL in when resolving cacheline_size
46cec35ff0411e0f fprintf: Fix division by zero for uninitialized conf_fprintf->cacheline_size field
73383b3a39afe86b libbpf: Update libbpf to the latest git HEAD
21352753186ec582 pahole: Use per-thread btf instances to avoid mutex locking
96d2c5c323255134 dwarf_loader: Prepare and pass per-thread data to worker threads
724c8fddd71be1fe dwarf_loader: Receive per-thread data on worker threads
2f7d61b2bfb59427 core: Define DW_TAG_skeleton_unit if not available on current dwarf.h
v1.23
Wed Dec 8 2021
54ae2f7f5e4f6328 Revert "fprintf: Allow making struct/enum/union anonymous"
69fb1861de35120c Revert "pahole: Add --inner_anon option"
005236c3e40eeb64 pahole: Add --inner_anon option
7c5e35b63bd26f1d fprintf: Allow making struct/enum/union anonymous
d99d551930cf4b4b btf_encoder: Support btf_type_tag attribute
3da248c3284ef905 man pages: Add missing --skip_encoding_btf_decl_tag entry
a58ecca0a89b142b man pages: Add missing --skip_encoding_btf_type_tag entry
b488c8d328845bd8 dwarf_loader: Support btf_type_tag attribute
a0cc68687f1281cd dutil: Move DW_TAG_LLVM_annotation definition to dutil.h
76401e9e46f07753 libbpf: Sync with latest libbpf repo to pick support for BTF_KIND_TYPE_TAG
0135ccd632796ab3 dwarf_loader: Warn about DW_TAG_skeleton_unit and give a workaround
433dc780ca48944b fprintf: Add DWARF5 tags added in elfutils 0.170
7af9ed4aed182869 dwarf_loader: Print the hexadecimal value for unexpected tags in die__process()
ec62499774c4bcac btf_encoder: generate BTF_KIND_DECL_TAGs for typedef btf_decl_tag attributes
468b4196f65458e8 dwarf_loader: support typedef DW_TAG_LLVM_annotation
696c62180455fd29 btf_loader: Use cacheline size to infer alignment
48f4086b766d2214 btf_loader: Propagate struct conf_load
772725a77d3323c6 dwarves_fprintf: Move cacheline_size into struct conf_fprintf
cdd088c05cfed082 btfdiff: Suppress alignment tags with BTF as well as with DWARF
836c139fdf6f2b13 btf_loader: Infer alignment info
4db65fe0cd02b3cc core: Export tag__natural_alignment()
43e8216c25ee767f fprintf: Fix __attribute__((__aligned__(N)) handling for struct members
c52f6421f21146ad btf: Rename btf_tag to btf_decl_tag
3433c67bbd158e1d manpages: Minor fixes
e975d0fba833d02d btf_loader: Refactor class__fixup_btf_bitfields
5282feee6d4d3a88 pahole: Add --skip_missing option
6931e393f8f6d81f fprintf: Fix nested struct printing wrt attributes
16a7acaba4466121 btf_encoder: Fix handling of percpu symbols on s390
3cde0135ca51de73 dwarf_loader: Fix heap overflow when accessing variable specification
a9c99e98815f06bd dwarves: Introduce conf_load->thread_exit() callback
cc6c7d473d518324 Update libbpf to get API to combine BTF
e38e89e8539b144a btf_encoder: Generate BTF_KIND_TAG from llvm annotations
aa8c494e65a77fa5 dwarf_loader: Parse DWARF tag DW_TAG_LLVM_annotation
3d20210d84f61ee2 CMakeList.txt: Don't download libbpf source when system library is used
38fad22d669ab044 libbpf: Get latest libbpf
88431099950ab3e8 CMakeList.txt: Make python optional
v1.22:
Mon Aug 23 2021
40a40df961e74aac core: Bump the chunk size for ptr_table uses in types, tags, functions tables
9f0809e6a8e790a1 pahole: Introduce --ptr_table_stats
f035871495435e58 core: Add CU stats printer
c59e996c97eb5569 pahole: Fix races in accessing type information in live CUs
c34b6c6cc96b9669 pahole: Add missing limits.h include to get ULLONG_MAX definition
5e8ad60d1f33bed6 CMakeList.txt: Look for obstack outside libc
739bc50b90694ffe cmake: Add a module to find if obstack is in a separate library
5244b47a883bee96 CMakeList.txt: Look for argp outside libc
3f70d31571d47c64 cmake: Add a module to find if argp is in a separate library
9f9588dc2bd8c955 fprintf: Add alternative method for reading the data cacheline size
71867afd666f2945 core: Include missing limits.h to get PATH_MAX definition
0d8d457fa325fb07 dutil: Include linux/stddef.h to build on Alpine Linux systems
bb02fec203463b9f README.tarball: Overcome --transform problem with symlinks
9fed416b380a7a17 MANIFEST: Add lib/include/bpf
cb1cf166769a169e spec: Remove deleted libbtf.h from the RPM file list
d0c3dd18c7d81cff README.tarball: Remove hardcoded version, get it from 'git tag'
b5140d5e6c8cade8 MANIFEST: Remove long gone strings header files
02fd228f6af7b04e MANIFEST: Add buildcmd.sh
06e41eccc2d19263 buildcmd.sh: Add single build script for use in CI
eba3e874add53187 pahole: Consider type members's names when comparing unions, structs
f61d458c9126467e pahole: Consider type members's types when comparing unions, structs
589a298829760a14 core: Introduce helpers for getting the first and next members of a type
815041d6dc4d62bf pahole: Improve the type sorting routine to consider multiple types with same name
93e26698693aca95 core: Remove extra ; in 'print_numeric_version' extern declaration
19798784d7a715d0 btf_loader: Mark the 'level' arg to the libbpf error callback as __maybe_unused
22763a8fc7ee5f79 btf_loader: Mark create_new_datasec() args as __maybe_unused
38df86db2b65dd43 dwarf_loader: cus__load_debug_types() doesn't use its 'cus' arg, remove it
16d646c07e98d66c dwarf_loader: Rename finalize_cu_immediately() to cus__finalize() to follow convention
90599e6177f20696 dwarf_loader: Remove unused 'dcu' argument from finalize_cu_immediately()
6fd4377a0db1e8d3 dwarf_loader: Remove unused 'dcus' argument from cu__finalize()
2bb04ecf79880a97 dwarf_loader: Remove unused 'cus' argument from finalize_cu()
9ada372a21d0abc2 dwarf_loader: Fix signed/unsigned comparision in tag__recode_dwarf_bitfield()
e4e9267c3a177ffa core: cus__fprintf_load_files_err() doesn't use its 'cus' argument
df92cb6b8e0f1577 core: Change last_seen_bit to uint32_t in class__find_holes()
789d8b3e1a7210d1 core: Change aligned_start to uint32_t in class__find_holes()
182cdcaed9055c76 core: Change cur_bitfield_end to uint32_t in class__find_holes()
5900f43f10844971 core: Change bit_start and bit_end to uint32_t in class__find_holes()
8634d8535f3fb25d btf_encoder: Fix signed/unsigned comparision
8d2efa2b6c147c37 btf_encoder: has_arg_names() doesn't need the 'cu' pointer
05f737076f81eab9 btf_encoder: btf_encoder__encode_tag() doesn't need the 'core_id' pointer
dc30e82b26dc98ef btf_encoder: btf_encoder__encode_tag() doesn't need the 'cu' pointer
4360359e434b41db btf_encoder: btf_encoder__add_struct_type() doesn't need the 'cu' pointer
6e1e4881a584ca54 btf_encoder: btf_encoder__add_func_proto() doesn't need the 'cu' pointer
9fbfcee7d9708876 btf_encoder: No need to read the ehdr in btf_encoder__write_elf(), ditch it
898cc490279c794b ctracer: No need to read the ehdr, ditch it
dee83e27dd69cb98 btf_encoder: No need to store the ehdr in the instance
24404190b80aa6bf elf_symtab: Remove needless GElf_Ehdr pointer argument from the constructor
74c2078e04755b6a dutil: elf_symtab__new() doesn't need the GElf_Ehdr *ep argument
23ea62817c3c9d1d pahole: Move case fallthru comment to after the statement
7a8e75cd9a99f618 elfcreator: elfcreator_copy_scn() doesn't need the 'elf' arg
3925a5bd53d68edc syscse: zero_extend() doesn't need a 'cu' arg
21b2933f018a954d pahole: Fix signedness of ternary expression operator
4e11c13895556982 ctracer: Remove a bunch of unused 'cu' pointers
54c1e93b8eada3db pahole: Use the 'prototypes' parameter in prototypes__load()
8b495918e6b52c4c codiff: class__find_pair_member() doesn't need 'cu' args
057be3d9936f78d9 core: class__find_member_by_name() doesn't need a cu pointer
ce9de90364d0fe98 core: Document type->node member usage
cead526d6b96e1d7 core: Fix nnr_members typo on 'struct type' comment docs
7cfc9be1f27876f4 man-pages: Improve the --nr_methods/-m pahole man page entry
3895127ce674cfb6 pahole: Clarify that currently --nr_methods doesn't work together witn -C
2ea46285aca0c639 pahole: No need to store the class name in 'struct structure'
4d8551396df5ce5a pahole: Multithreaded DWARF loading requires elfutils >= 0.178
e57e23c72a7c0446 btf_encoder: Add methods to maintain a list of btf encoders
e9b83dba79a87935 list: Adopt list_next_entry() from the Linux kernel
6edae3e768e6bc0d dwarf_loader: Make hash table size default to 12, faster than 15
d2d83be1e2124785 pahole: Allow tweaking the size of the loader hash tables
ff7bd7083f36db80 core: Allow sizing the loader hash table
3068ff36b7ff943d hash: Remove unused hash_32(), hash_ptr()
8eebf70d05d881cf dwarf_loader: Use a per-CU frontend cache for the latest lookup result
a2f1e698487b783c core: Use obstacks: take 2
dca86fb8c2220f9a dwarf_loader: Add comment on why we can't ignore lexblocks
9d0a7ee0c38ebac5 pahole: Ignore DW_TAG_label when encoding BTF
d40c5f1e20795938 core: Allow ignoring DW_TAG_label
51ba83192979916e pahole: Ignore DW_TAG_inline_expansion when encoding BTF
903863889131a7fa core: Allow ignoring DW_TAG_inline_expansion
20757745f04ace54 pahole: Allow encoding BTF with parallel DWARF loading
5a85d9a450819500 core: Zero out unused entries when extending ptr_table array in ptr_table__add()
d133569bd0f0b422 pahole: No need to read DW_AT_alignment when encoding BTF
21a41e5386938db1 dwarf_loader: Allow asking not to read the DW_AT_alignment attribute
1ef1639039b56005 dwarf_loader: Do not look for non-C DWARF attributes in C CUs
88265eab35666f34 core: Add cu__is_c() to check if the CU language is C
1caed1c443d4a0dc dwarf_loader: Add a lock around dwarf_decl_file() and dwarf_decl_line() calls
dd13708f2fd7557b btfdiff: Use multithreaded DWARF loading
f95f7838499f94c3 btfdiff: Use --sort for pretty printing from both BTF and DWARF
3e1c7a20770ec432 pahole: Introduce --sort
967290bc7176e3c2 pahole: Store the class id in 'struct structure' as well
2b45e1b6d04b147c dwarf_loader: Defer freeing libdw Dwfl handler
35845e7e41872158 core: Provide a way to store per loader info in cus and an exit function
5365c45177643f35 pahole: Keep class + cu in tree of structures
fb99cad539e58638 dwarf_loader: Parallel DWARF loading
75d4748861ad98cf pahole: Disable parallell BTF encoding for now
1c60f71daacbe4d0 pahole: Add locking for the structures list and rbtree
46ad8c01585df768 dwarf_loader: Introduce 'dwarf_cus' to group all the DWARF specific per-cus state
d963af9fd8148ba0 dwarf_loader: Factor common bits for creating and processing CU
0c5bf70cc1259162 fprintf: class__vtable_fprintf() doesn't need a 'cu' arg
38ff86b149e1aa9a fprintf: string_type__fprintf() doesn't need a 'cu' arg
a75c342ac2fc6c54 core: Ditch tag__free_orig_info(), unused
80fe32fd294ac15e core: variable__name() doesn't need a 'cu' arg
caa219dffcb41422 core: base_type__name() doesn't need a 'cu' arg
7569e46d3515f93e core: namespace__delete() doesn't need a 'cu' arg
de4e8b7f178257d5 core: {tag,function,lexblock}__delete() doesn't need a 'cu' arg
789ed4e3a2c34b54 core: ftype__delete() doesn't need a 'cu' arg
6340cb462767aa95 core: enumeration__delete() doesn't need a 'cu' arg
33e44f5295702d95 core: type__delete() doesn't need a 'cu' arg
0f54ca9c827e9ef7 core: class__clone() doesn't need a 'cu' arg
2b2014187b811243 core: class__delete() doesn't need a 'cu' arg
f40900eba656db3b core: type__delete_class_members() doesn't need a 'cu' arg
50916756d59ad7f9 core: class_member__delete() doesn't need a 'cu' arg
2e50463c3aa149d3 core: type__clone_members() doesn't need a 'cu' arg
a66208355ea8108c core: class_member__clone() doesn't need a 'cu' arg
33e0d5f874dc22c4 pahole: Introduce --prettify option
bc36e94f32e662aa pahole: Try harder to resolve the --header type when pretty printing
fcfa2141c375849b pahole: Make prototype__stdio_fprintf_value() receive a FILE to read raw data from
1a65d232b040fae6 man-page: Move the PRETTY PRINTING header earlier
2d35630fa55de2bc pahole: Make pipe_seek() honour the 'fp' arg instead of hardcoding stdin
9aa01472d9655e1b pahole: Rename 'fp' to 'output' in prototype__stdio_fprintf_value()
472b94018055873d pahole: Use the supplied 'fp' argument in type__instance_read_once()
63992cb02a69485b core: Use namespace->name in class__clone()
ced4c34c37acd185 core: Remove strings.c, unused
adbb66c2957d9eef ctf_loader: Use uint32_t instead of strings_t, that is going away
ad707445b3fcaf11 core: Remove base_type_name_to_size_table.sname, unused
f8d571934b96ea35 pahole: Add missing bpf/btf.h include
deb6a4a4921b33ec libctf: Comment out unused CTF encoding functions
82155bc92f726c43 btf_loader: Add missing bpf/btf.h include
05f1f9dece4ed54d btf_encoder: Add missing bpf/btf.h include
f4a77d03909c1cf8 pahole: Use conf_load.kabi_prefix
2b9bd83e63bacb59 dwarf_loader: Make attr_suffix() handle kabi_prefix
daaafeb35f168fd1 dwarf_loader: Pass conf_load to functions calling attr_string()
def39099c1920346 ctf_loader: No need for the 'strings' extern, not used
2499920ac8d88b82 btf_loader: No need for the 'strings' extern, not used
a388aaf489f945d4 dwarf_loader: Remove unused strings variable and debug_fmt_ops->{init,exit}()
3d3b7b3287617b8f core: Remove unused debug_fmt_ops->dwarf__strings_ptr()
05687c547e9f22e8 core: Remove unused cu__string() method
a201149e181be613 dwarf_loader: No need to strdup() what dwarf_formstring() returns
6b7f1b72f9a958e4 core: No need for debug_fmt_ops->variable_name() anymore
9d0e3ab9a29c2e81 pahole: function__name() doesn't need a 'struct cu *' argument
a7d789a4f841b0ea core: Make variable->name a real string
b5694280ec5b1f1f core: Make label->name a real string
e974d1b2404154ea pahole: class_member_filter__new() doesn't need a 'struct cu *' argument
0275e8d24975c531 pahole: class_member_filter__parse() doesn't need a 'struct cu *' argument
90183e8e4da43785 pahole: tag__real_sizeof() doesn't need a 'struct cu *' argument
5cb91927385d7b75 pahole: Rename tag__fprintf_hexdump_value() to instance__fprintf_hexdump_value()
75c769a900185faf pahole: enumerations__lookup_entry_from_value() doesn't need to return a CU anymore
1edca2655284d968 pahole: enumeration__lookup_entry_from_value() doesn't need a 'cu' argument
f8d98eff756bf406 core: Ditch unused enumeration__prefix_len() method
5cc365164a4cba46 core: Ditch unused enumeration__prefix() method
e18c60d793935ab6 pahole: enumeration__lookup_value() doesn't need a 'cu' argument
4b877c8e6762c42f pahole: enumeration__lookup_enumerator() doesn't need a 'cu' argument
3ff11828fee01a91 core: enumeration__emit_definitions() doesn't need a 'cu' argument
0947d6e7954d752d core: enumeration__fprintf() doesn't need a 'cu' argument
bb22f5bb0a137342 core: Make enumeration__max_entry_name_len() static
dc83336171d1157c core: enumeration__max_entry_name_len() doesn't need a 'cu' argument
ec1667c76db61e2f core: Make enumeration__calc_prefix() static
45ec63ed20a56557 core: enumeration__calc_prefix doesn't need a 'cu' argument
2fae84e2f79726fb btf_encoder: btf_encoder__add_enum_type() doesn't need a 'cu' argument, ditch it
96243fdd79c5c45d core: enumerator__name() doesn't need a 'cu' argument, ditch it
ee5c12893b2e8aa8 core: Ditch dwarves__active_loader, unused
713239bc008910ff core: Make enumerator->name a real string
7721cc17aca7020d emit: type__emit_fwd_decl() isn't used outside emit.c, make it static
9aa5db7acd420d55 emit: type__emit_fwd_decl() doesn't need a cu arg
c46f91ef6f9cd0a1 emit: type_emissions__find_definition() doesn't need a cu arg
c127d25daf88c1a2 core: class__name() doesn't need a cu arg
00e8c5fe216755d6 core: type__name() doesn't need a cu arg
b99c4008acca8794 core: Make namespace->name a real string
379a73c6eb4633d4 core: Make class_member->name a real string
3280cb41768a7130 core: Make parameter->name a real string
f009162fd133d155 core: Make base_type->name a real string
e2ee753fa74ca570 pahole: Disable incomplete CTF encoder
0d13bc50ee8dbdf8 core: Ditch unused cu__find_struct_by_sname()
46f3f372416d7f9f core: Convert cu__find_base_type_by_sname_and_size to search for a string
f84e8777eada296a core: Convert cu__find_enumeration_by_sname_and_size to search for a string
a16c82f7110467b7 dwarf_loader: Rename strings_t 'name' to 'sname' to clarify usage
82e5b5101a6adf73 core: Make function->name a real string
4f73cac85321bd5b core: Make function->linkage_name a real string
a93160df5335ed2e dwarf_loader: Make dwarf_tag->decl_file a real string
a3fcbcacf79787d6 pahole: Allow specifying the number of threads to use while loading files
d70b2562ee5d90f2 pahole: Make '-j' available for use as number of jobs (threads)
41a283c65d300945 core: Protect cus->cus with a mutex
972065482a7f714d core: Make 'struct cus' opaque, only visible in dwarves.c
3895b29060fdc21e core: Introduce helper to return number of cu entries in a 'struct cus'
874e750fb8bddcad core: Move cus__find_pair() from codiff to the core
bf74fc1fcf1ab78e core: Introduce helper to return if there is no cu entries in a 'struct cus'
7020f9214328ac8d core: Prepare cus__find_cu_by_name() for locking
4bf7285b37108222 core: Prepare cus__find_function_at_addr() for locking
73a2fd1e5a70c7f2 core: Prepare __cus__find_struct_by_name() for locking
5020bf721b204673 core: Prepare cus__find_type_by_name() for locking
d124926baf2366a2 core: Initialize cu->priv in cu__new()
3ec54ee72ff7c5b1 CMakeList.txt: Bump version to the upcoming 1.22 release, not out of the door yet
1ef87b26fd268b52 Revert "btf_encoder: Reduce the size of encode_cu() by moving function encoding to separate method"
7869cc113b0b5a3d dwarf_loader: Separate non-LTO per CU processing + BTF encoding part
de3a7f912559433c btf_encoder: Reduce the size of encode_cu() by moving function encoding to separate method
d348b37ed16249e0 btf_encoder: Reduce the size of encode_cu() by moving var encoding to separate method
f62196d3be5a8765 btf_encoder: No need to set the endianness twice when encoding into an ELF file
819f83bd9736b9c8 btf_encoder: Pass detached_filename to the constructor
7ed4ddc46826538e btf_encoder: Adopt writing to raw file method
1498094d335f697a btf_encoder: Rename btf__encode_in_elf to btf_encoder__write_elf, shortening function signature
cd2b8978c43ea00a btf_encoder: Combine btf__write_elf() with btf__encode_in_elf()
18a3e9711ccc6887 btf_encoder: Move duplicate code to btf_encoder__encode()
9eb3d7a29de32bf4 btf_encoder: Pass the 'skip_encoding_vars' to the constructor
707101ec38d76958 btf_encoder: No need to export the 'struct btf_definition', make it opaque
f1feaa94c7a92e5c libbpf: bump dependency to >= 0.4.0
1b50808c2958dde3 libbpf: If LIBBPF_EMBEDDED=OFF and libbpf-dev/pkgconfig is not available, fail the build
790dfbda79444d11 headers: Rebame __unused to __maybe_unused to avoid clashes with system headers
82756ea3eaf1f6e7 libbpf: Fixup patch to allow to use packaged version
ba953a53be25765e README: Add documentation for -DBUILD_SHARED_LIBS
aa2027708659f172 CMakeLists.txt: Enable SHARED and STATIC lib creation
ae2581647e849488 libbpf: Allow to use packaged version
743f2536d8b876a4 btf_encoder: Move libbtf.c to btf_encoder.c, the only user of its functions
6f72dddbed0e1bf8 btf_encoder: Move PERCPU_SECTION define to the only source file using it
f0f5b4f2bc34b029 btf_encoder: Move library global variable btf_gen_floats to btf_encoder class
09970b03bd309d83 btf_encoder: Ditch unused 'btf_encoder__verbose' global variable
1bf2e3511a1386c4 btf_encoder: Use encoder->verbose instead of btf_encoder__verbose
4ffa484b6a04530b btf_encoder: Adopt btf__log_func_param() and use encoder->verbose
729da7613b399f9c btf_encoder: Adopt btf__log_member() and use encoder->verbose
be75b76b6b9e479f btf_encoder: Adopt btf__log_type() and use encoder->verbose
9f19e96001f72c49 btf_encoder: No need to pass encoder->percpu_secinfo to btf_encoder__add_datasec()
869c177f8e13ce12 btf_encoder: Make btf_encoder__add_var_secinfo() receive a btf_encoder pointer
f0e8cd68f5dcb20b btf_encoder: Adopt btf__encode_var_secinfo() as btf_encoder__add_var_secinfo()
cc646d93d18270e9 btf_encoder: Adopt btf__encode_datasec_type() as btf_encoder__add_datasec()
b0f71fabdeee329b btf_encoder: Adopt btf__encode_var_type() as btf_encoder__add_var()
1aece1e7e6d593db btf_encoder: Adopt btf__encode_enum_val() as btf_encoder__add_enum_val()
4371b3cd5b9b18e6 btf_encoder: Adopt btf__encode_enum() as btf_encoder__add_enum()
b536947512efcb7e btf_encoder: Adopt btf__encode_enumeration_type() as btf_encoder__add_enum_type()
1bc29591ec010fa8 btf_encoder: Adopt btf__encode_func_proto_param() as btf_encoder__add_func_param()
393febe592e94f4a btf_encoder: Adopt btf__encode_func_proto() as btf_encoder__add_func_proto()
4eb4c03578b29791 btf_encoder: Adopt btf__encode_array() as btf_encoder__add_array()
06cd9f00c69d11bd btf_encoder: Adopt btf__encode_struct() as btf_encoder__add_struct()
0b29d5a65ccef5f6 btf_encoder: Adopt btf__encode_member() as btf_encoder__add_field()
3e2a1f7ddc930d3c btf_encoder: Adopt btf__encode_struct_type() as btf_encoder__add_struct_type()
2c7a2f270ef7bcea btf_encoder: Adopt btf__encode_ref_type() as btf_encoder__add_ref_type()
07d4ec9cef0c1619 btf_encoder: Adopt btf__encode_float_type() as btf_encoder__add_float()
68ed8af85908e432 btf_encoder: Adopt btf__encode_base_type() as btf_encoder__add_base_type()
14ab2e036147b6bc libbtf: Ditch unused btf_elf__verbose_log() macro
539c94fee9315254 libbtf: Ditch btf_elf class, unused
282a8a2187bde9bd btf_encoder: Use 'struct btf' directly, stop using btf_elf
dd0b01f56837794e libbtf: Remove unused ELF fields and calls from btf_elf
a0c5f49b0c405b1b btf_encoder: Phagocytize percpu_secinfo from btf_elf
c288e29d06c380b5 pahole: Rename 'encoder' to 'btf_encoder' as we support multiple formats
46a3e3a87a8963ca btf_encoder: Move the global btf_encoder to its users, like pahole
fa849010b4565015 btf_encoder: Adopt the cu__encode_btf() method, as btf_encoder__encode_cu()
3be437c5e7d2777e btf_encoder: Set btf_encoder__verbose in just one place, its users
e1e787af4496b51f btf_encoder: Move btf_elf__verbose var to btf_encoder class
66f4054252ab996e btf_encoder: Adopt btf_elf__force, its only used in btf_encoder methods
5e1207754eb67249 pahole: Adopt btf_encoder object instantiation from btf_encoder
0208952e8ffcfdc3 btf_encoder: Move the function encode() to be a btf_encoder method
bcc5f95364da96bb btf_encoder: Temporarily expose the 'encoder' variable
e27be59f10c7c6e3 btf_encoder: Move 'filename' member from btf_elf to btf_encoder
da9d70a16ff01492 btfdiff: Support diffing DWARF vs detached BTF
6bc135c8f49696a9 btf_encoder: No need for calling btf_encoder__encode() from cu__encode_btf()
48a0fa2ef7b546a3 btf_encoder: Move btf_elf based encode_in_elf and write_elf methods to btf_encoder
cc8eae604dc07b5e btf_encoder: Move collect_symbols() call to btf_encoder constructor
96e59c55686bccaf btf_encoder: Remove needless hash.h include, not used anymore
92f8852d8d178966 btf_encoder: Move global elf_functions table to the btf_encoder class
aa48ed55a790c2d5 btf_encoder: Move ELF's ehdr from btf_elf to btf_encoder
b3701a8346a6ea71 btf_encoder: Move 'symtab' from btf_elf to btf_encoder
be8dac48691f6578 btf_encoder: Move percpu members from btf_elf to btf_encoder
7f70877b198200ac btf_encoder: Add a 'verbose' member for encoder specific logging requests
ef8a48b3bc7cda1f btf_encoder: Move 'array_index_id' global variable to 'struct btf_encoder'
f3e6edffd7210265 btf_encoder: Move percpu vars global variables to btf_encoder class
14053c490bf68a49 btf_encoder: Adopt collect_function() as a btf_encoder method
049675f4a5401ac2 btf_encoder: Adopt collect_per_cpu_var() as a btf_encoder method
21b5e9b368228502 btf_encoder: Adopt collect_symbol() as a btf_encoder method
e40bc12ddf42b4a8 btf_encoder: Move 'need_index_type' global variable to 'struct btf_encoder'
cccfeec3c7d68f89 btf_encoder: Make tag__encode_btf() its encode_tag() method
65b3c598ab24a14a btf_encoder: Move 'has_index_type' global variable to 'struct btf_encoder'
a5c732e712564798 btf_encoder: Introduce 'struct btf_encoder' to have all the current globals
bd4e585d81a35862 btf_encoder: Replace btfe with btf in tag__encode_btf()
de2676159d8472b7 btf_encoder: Move encode_enumeration_type() from btf_elf to btf
80dec71c934fc96a btf_encoder: Move encode_struct_type() from btf_elf to btf
6d7790a5d4fc68a4 btf_encoder: Move add_datasec_type() from btf_elf to btf encode_datasec_type()
12d340c321e31564 btf_encoder: Move add_var_secinfo() from btf_elf to btf encode_var_secinfo()
d90b38c1f3ca9171 btf_encoder: Move add_var_type() from btf_elf to btf encode_var_type()
bce82c1a00a9beee btf_encoder: Move add_func_proto() from btf_elf to btf encode_func_proto()
188f25b74130d131 btf_encoder: Move add_enum() from btf_elf to btf encode_enum()
f82bd80a5c175425 btf_encoder: Move add_struct() from btf_elf to btf encode_struct()
1216aebd27ecd4e6 btf_encoder: Move add_array() from btf_elf to btf encode_array()
a96c91261e731602 btf_encoder: Move add_ref_type() from btf_elf to btf encode_ref_type()
a97ed8080a354487 btf_encoder: Move add_member() from btf_elf to btf encode_member()
56e0c2d4ccc7a9bd btf_encoder: Move add_base_type() from btf_elf to btf encode_base_type()
adeeb9ebcf7ef8bd btf_encoder: Move add_float_type() from btf_elf to btf encode_float_type()
37d3b8a1cedac677 btf_encoder: bpf__log_func_param() doesn't need the btfe arg
64d216f57e7a229f btf_encoder: Move log_member() from btf_elf to btf
20bb260428c0a1ad btf_encoder: Move log_type() from btf_elf to btf
16d026ce5db765c9 btf_encoder: Move log_err() from btf_elf to btf
c5f594eaa9b5ab8c btf_encoder: Remove 'elf' from btf_elf__int_encoding_str() name
c81d11b8bb80bed1 btf_elf: Remove base_btf member, used only in the constructor
69f5fff50e442cad btf_elf: No point in falling back to raw BTF in btf_new()
3fcf804a7e69aa4f btf_elf: No point in looking at the filename for /sys/kernel/btf in btf_elf__new()
c9eb447502b771c5 libbtf: Ditch unused btf_elf__string() method
a355a245fb48b05f libbtf: Remove unused btf_elf__load()
3de65d433ab18301 btf_encoder: Move printable_name() from btfe to btf
7fb31d787d3deec1 btf_loader: Stop using libbtf.h and the btf_elf class
e431c18b80650545 btf_loader: cu__fixup_btf_bitfields doesn'n need btfe parameter, ditch it
8c1919c10df8a79f btf_loader: class__fixup_btf_bitfields doesn'n need btfe parameter, ditch it
4d2ae0d9049e47c5 btf_elf: Remove unused btfe->priv member
b54b74edfcd0dc8c btf_loader: Add a local 'btf' var to prep next patches
52bedef0fddaa227 btf_loader: Move load_sections() from btf_elf to btf
ac3f2952a854fccc btf_loader: Move load_types() from btf_elf to btf
1a33deae144dbd22 btf_loader: Move create_new_tag() from btfe to cu
8323cb33bc73817a btf_loader: Move create_new_datasec() from btfe to cu
6fb41bbf8e31f3cf btf_loader: Move create_new_variable() from btfe to cu
9122424dda37ccff btf_loader: Move create_new_typedef() from btfe to cu
dd3e9ab4a00f8cf9 btf_loader: Move create_new_forward_decl() from btfe to cu
cca6b51d292df6f1 btf_loader: Move create_new_subroutine_type() from btfe to cu
ba1b77d01dda3ac0 btf_loader: Move create_new_enumeration() from btfe to cu
a58bc8300f13c93f btf_loader: Move create_new_union() from btfe to cu
367f5fe74cbb35ec btf_loader: Move create_new_class() from btfe to cu
2460bead8a8fc02f btf_loader: The create_members() function doesn't need the btfe arg
1136795fec7ff6bf btf_loader: Move create_new_array() from btfe to cu
ab2f5028916c7822 btf_loader: Move create_new_float_type() from btfe to cu
6b452a1cc5f2f22b btf_loader: Move create_new_int_type() from btfe to cu
073a5f69ef19700a btf_loader: Move create_new_function() from btfe to cu
29ad464f73286067 btf_loader: Move load_ftype() from btfe to cu
407693e2cabfa7a3 btf_loader: Pass cu to the load_sections/types routines
89b9c4f8851ebc8f libbtf: Remove the 'base_btf' global var, now unused
6f70d0accaf17f74 pahole: Use conf_load->base_btf to call cu__encode_btf()
0e77be409969631b btf_loader: Use conf_load->base_btf instead of the global btf_base var
6ee61b161dbcc42c pahole: Set conf_load.btf_base when applicable
b8255beb12c02d76 core: Allow passing the base_btf object via 'struct conf_load'
f93e05d8bd45d4b3 btf_encoder: Pass the base BTF object to the BTF encoder
81797a00fbdd1017 btf_elf: Remove unused 'wordsize' member
ecc888b855c249a6 btf_loader: Use btf__pointer_size() to set cu->addr_size
e6b69ffc74dcb3f0 btf_elf: Remove unused is_big_endian member
81fe7d688de85fa2 btf_loader: Use btf__endianness() instead of to be removed btfe member
9f8ce7e1137f22c1 libbtf: Remove unused btf_elf->raw_btf member
89be5646a03435bf pahole: Allow encoding BTF into a detached file
22a76fbc8b33a3cd btf_loader: Use btf__parse_split()
c9d4c106ab95cd8c dwarf_loader: Add define for DW_OP_addrx
76f7844c817eeac5 libbtf: Fix typo
3d510406ff363056 pahole: Add --kabi_prefix flag
0d17503db0580a66 btf_encoder: fix and complete filtering out zero-sized per-CPU variables
fb418f9d8384d3a9 dwarves: Make handling of NULL by destructos consistent
f049fe9ebf7aa9c2 dutil: Make handling of NULL by destructos consistent
1512ab8ab6fe76a9 pahole: Make handling of NULL by destructos consistent
1105b7dad2d0978b elf_symtab: Use zfree() where applicable
131275fa20437dec codiff: Use zfree() where applicable
6784b03fd447f507 dutil: Adopt the zalloc()/zfree() from perf
d7f5824a9e1895d1 libctf: Use zfree() where applicable
45d9eb8602b42a6b pahole: Use zfree() where applicable
f48cc78e8e6e56df dwarf_loader: Use zfree() instead of ad-hoc implementation
d0f6a4a1da524873 gobuffer: Use zfree() and make delete accept NULL, like free()
db37185d16d4a56d dwarves: Use zfree()
e7e86c75e149c161 libbtf: Use zfree()
972001e58e9f5ed9 dutil: Adopt zfree(), to use it more pervasively
5847901abf13e8bd dwarves: Plug leaks in cu__new() found by covscan
32114e611a93b046 dwarf_loader: Call dwarf_cu__delete() when aborting the load
26bd4c41646a64b9 dwarf_loader: Delete the allocated CU when aborting
d8940df90b4a952b dwarf_loader: Make all ABORT returns go thru a single exit label
3ba54ee43a301419 dwarf_loader: Use zalloc() to allocate dwarf_cu
f3957627bb3e3431 dwarf_loader: Make dwarf_cu__delete() accept NULL, just like free()
8772c9d827813d4d dwarves: Accept NULL in cu__delete(), just like free() accepts
25cc0c77545cefbc dwarf_loader: Check if we have a CU after the loop in cus__merge_and_process_cu()
2f30062b546de1ef dwarf_loader: Check tag__recode_dwarf_bitfield() return, may be NULL
d68fd2bbc59291f3 ctracer: Initialize the 'parm_list' variable, detected by covscan
5b0fb9745e1e9597 codiff: Fix usage of negative errno values with strerror(), reported by covscan
cba940fb86a46fa9 btf_loader: Fix some memory leaks found by covscan
674063b1ea4156d2 loaders: Plug enumeration__delete() leak detected by covscan
505a1f5615c5064a dwarves: Stop using obstacks
872658b88021b487 CMakeLists.txt: Specify the file extension of srcs
aa8519378a37c9a5 README: Mention how to specify another prefix
58a98f76ac95b1bb btf: Remove ftrace filter
7c60b0443cb01795 pahole: Fix error message when --header couldn't be read
7eea706c14997b4f pahole: Introduce --with_flexible_array option to show just types ending in a flexible array
v1.21:
Fri Apr 9 2021
ae0b7dde1fd50b12 dwarf_loader: Handle DWARF5 DW_OP_addrx properly
9adb014930f31c66 dwarf_loader: Handle subprogram ret type with abstract_origin properly
5752d1951d081a80 dwarf_loader: Check .notes section for LTO build info
209e45424ff4a22d dwarf_loader: Check .debug_abbrev for cross-CU references
39227909db3cc2c2 dwarf_loader: Permit merging all DWARF CU's for clang LTO built binary
763475ca1101ccfe dwarf_loader: Factor out common code to initialize a cu
d0d3fbd4744953e8 dwarf_loader: Permit a flexible HASHTAGS__BITS
ffe0ef4d73906c18 btf: Add --btf_gen_all flag
de708b33114d42c2 btf: Add support for the floating-point types
4b7f8c04d009942b fprintf: Honour conf_fprintf.hex when printing enumerations
f2889ff163726336 Avoid warning when building with NDEBUG
8e1f8c904e303d5d btf_encoder: Match ftrace addresses within ELF functions
9fecc77ed82d429f dwarf_loader: Use a better hashing function, from libbpf
0125de3a4c055cdf btf_encoder: Funnel ELF error reporting through a macro
7d8e829f636f47ab btf_encoder: Sanitize non-regular int base type
v1.20:
Tue Feb 2 2021
8d6f06f053a06829 (HEAD -> master, seventh/master, quaco/master, origin/master, origin/HEAD) dwarf_loader: Add conditional DW_FORM_implicit_const definition for older systems
66d12e4790b7c5e5 dtagnames: Stop using the deprecated mallinfo() function
1279e439b622aeb5 cmake: Bump minimum required version to 2.8.12 as per upstream support warning
b1eaf0da6d1f72b2 dwarves: Make enum prefix search more robust
d783117162c0212d dwarf_loader: Handle DWARF5 DW_TAG_call_site like DW_TAG_GNU_call_site
3ff98a6396e91d0a dwarf_loader: Support DW_FORM_implicit_const in __attr_offset()
b91b19840b0062b8 dwarf_loader: Support DW_AT_data_bit_offset
c692e8ac5ccbab99 dwarf_loader: Optimize a bit the reading of DW_AT_data_member_location
65917b24942ce620 dwarf_loader: Fix typo
77205a119c85e396 dwarf_loader: Introduce __attr_offset() to reuse call to dwarf_attr()
8ec231f6b0c8aaef dwarf_loader: Support DW_FORM_implicit_const in attr_numeric()
7453895e01edb535 btf_encoder: Improve ELF error reporting
1bb49897dd2b65b0 bpf_encoder: Translate SHN_XINDEX in symbol's st_shndx values
3f8aad340bf1a188 elf_symtab: Handle SHN_XINDEX index in elf_section_by_name()
e32b9800e650a6eb btf_encoder: Add extra checks for symbol names
82749180b23d3c9c libbpf: allow to use packaged version
452dbcf35f1a7bf9 btf_encoder: Improve error-handling around objcopy
cf381f9a3822d68b btf_encoder: Fix handling of restrict qualifier
b688e35970600c15 btf_encoder: fix skipping per-CPU variables at offset 0
8c009d6ce762dfc9 btf_encoder: fix BTF variable generation for kernel modules
b94e97e015a94e6b dwarves: Fix compilation on 32-bit architectures
17df51c700248f02 btf_encoder: Detect kernel module ftrace addresses
06ca639505fc56c6 btf_encoder: Use address size based on ELF's class
aff60970d16b909e btf_encoder: Factor filter_functions function
1e6a3fed6e52d365 rpm: Fix changelog date
v1.19:
Fri Nov 20 2020
bf21da407593f104 fprintf: Make typedef__fprintf print anonymous enums
9c4bdf9331bf06a7 fprintf: Align enumerators
89cf28228a8ab55e fprintf: Add enumeration__max_entry_name_len()
932b84eb45a9b8ba fprintf: Make typedef__fprintf print anonymous structs
4a1479305b53933d pahole: Add heuristic to auto-add --btf_base for /sys/kernel/btf/ prefixed files
e1d01045828a5c4c btf: Fallback to raw BTF mode if the header magic matches
24cea890abedb15b pahole: Force '-F btf' with --btf_base
cfad738682506ce4 libbtf: Assume its raw_btf if filename starts with "/sys/kernel/btf/"
7293c7fceac36844 pahole: The --btf_base option receives a PATH, not a SIZE
b3dd4f3c3d5ea59e btf_encoder: Use better fallback message
d06048c53094d9d2 btf_encoder: Move btf_elf__verbose/btf_elf__force setup
8156bec8aedb685b btf_encoder: Fix function generation
d0cd007339ee509e btf_encoder: Generate also .init functions
25753e0396abea25 pfunct: Use load stealer to speed up --class
aa8fb8c091446467 man-pages: Add entry for -J/--btf_encode to pahole's man page
ace05ba9414c1fe4 btf: Add support for split BTF loading and encoding
7290d08b4a6e5876 libbpf: Update libbpf submodule reference to latest master
344f2483cfcd4952 libbtf: Improve variable naming and error reporting when writing out BTF
94a7535939f92e91 btf_encoder: Fix array index type numbering
9fa3a100f71e7a13 pfunct: Use a load stealer to stop as soon as a function is found
de18bd5fe3515358 pfunct: Try sole argument as a function name, just like pahole
bc1afd458562f21e pahole: Introduce --numeric_version for use in scripts and Makefiles
784c3dfbd63d5bcf dwarves: Switch from a string based version to major/minor numbers
fc06ee1b6e9dc14a pahole: Check if the sole arg is a file, not considering it a type if so
f47b3a2df3622204 dwarf_loader: Fix partial unit warning
5a22c2de79fb9edf btf_encoder: Change functions check due to broken dwarf
7b1af3f4844b36b9 btf_encoder: Move find_all_percpu_vars in generic collect_symbols
863e6f0f2cc08592 btf_encoder: Check var type after checking var addr.
5e7ab5b9e064a3eb btf_loader: Handle union forward declaration properly
ec3f944102a71241 cmake: Make libbpf's Linux UAPI headers available to all binaries
8cac1c54c83c346b btf_encoder: Ignore zero-sized ELF symbols
040fd7f585c9b9fc btf_encoder: Support cross-compiled ELF binaries with different endianness
29fce8dc8571c6af strings: use BTF's string APIs for strings management
75f3520fedf6afdb strings: Rename strings.h to avoid clashing with /usr/include/strings.h
bba7151e0fd2fb3a dwarf_loader: increase the size of lookup hash map
2e719cca66721284 btf_encoder: revamp how per-CPU variables are encoded
0258a47ef99500db btf_encoder: Discard CUs after BTF encoding
3c913e18b2702a9e btf_encoder: Fix emitting __ARRAY_SIZE_TYPE__ as index range type
48efa92933e81d28 btf_encoder: Use libbpf APIs to encode BTF type info
5d863aa7ce539e86 btf_loader: Use libbpf to load BTF
0a9b89910e711951 dwarves: Expose and maintain active debug info loader operations
7bc2dd07d51cb5ee btf_encoder: detect BTF encoding errors and exit
c35b7fa52cb8112a libbpf: Update to latest libbpf version
ef4f971a9cf745fc dwarf_loader: Conditionally define DW_AT_alignment
cc3f9dce3378280f pahole: Implement --packed
08f49262f474370a man-pages: Fix 'coimbine' typo
v1.18:
Fri 02 Oct 2020
aee6808c478b760f btf_loader: Initialize function->lexblock.tags to fix segfault in pdwtags
c815d26689313d8d btf_encoder: Handle DW_TAG_variable that has DW_AT_specification
b8068e7373cc1592 pahole: Only try using a single file name as a type name if not encoding BTF or CTF
8b1c63283194ebe1 libctf: Make can't get header message to appear only in verbose mode
63e11400e80f6ac4 libbtf: Make can't get header message to appear only in verbose mode
fc2b317db0bdc1a9 dwarf_loader: Check for unsupported_tag return in last two missing places
2b5f4895e8968e83 dwarf_loader: Warn user about unsupported TAGs
010a71e181b450d7 dwarf_loader: Handle unsupported_tag return in die__process_class()
3d616609ee0fd6df dwarf_loader: Add minimal handling of DW_TAG_subrange_type
2e8cd6a435d96335 dwarf_loader: Ignore DW_TAG_variant_part for now to fix a segfault
e9e6285fd0d63ed0 dwarf_loader: Skip empty CUs
1abc001417b579b8 btf_encoder: Introduce option '--btf_encode_force'
da4ad2f65028e321 btf_encoder: Allow disabling BTF var encoding.
f5847773d94d4875 fprintf: Support DW_TAG_string_type
8b00a5cd677df778 dwarf_loader: Support DW_TAG_string_type
0d9c3c9835659fb7 dwarves: Check if a member type wasn't found and avoid a NULL deref
2ecc308518edfe05 dwarf_loader: Bail out at DW_TAG_imported_unit tags
8c92fd298101171d dwarf_loader: Ignore entries in a DW_TAG_partial_unit, for now
4cfd420f7ef13af4 README: Add instructions to do a cross build
9e495f68c683574f dwarf_loader: Move vaddr to conditional where it is used
69fce762074a5483 pahole: Use "%s" in a snprintf call
22f93766cf02f4e0 pahole: Support multiple types for pretty printing
78f2177d904902c6 pahole: Print the evaluated range= per class
5c32b9d5c7ac8fff pahole: Count the total number of bytes read from stdin
e3e5a4626c94d9c5 pahole: Make sure the header is read only once
208bcd9873442013 pahole: Introduce 'range=member' as a class argument for pretty printing
b9e406311990c2d5 pahole: Cache the type_enum lookups into struct enumerator
fda1825f0b9f1c9f dwarves: Introduce tag_cu_node, so that we can have the leaner tag_cu
47d4dd4c8a2cf9fd pahole: Optimize --header processing by keeping the first successfull instance
fdfc64ec44f4ad53 pahole: Introduce --range
f63d3677e31d88a3 pahole: Support multiple enums in type_enum=
c50b6d37e99fddec pahole: Add infrastructure to have multiple concatenated type_enum
671ea22ca18dd41f pahole: Move finding type_enum to a separate function
dd3c0e9eb0cbc77f dwarves: Move the common initialization of fields for 'struct type'
aa7ab3e8755a4c12 pahole: Allow for more compact enum filters by suppressing common prefix
4ece15c37b028a80 dwarves: Find common enumerators prefix
d28bc97b5c12736b man-pages: Document pretty printing capabilities and provide examples
a345691f08f04f19 pahole: Make --header without -C to be equivalent to -C header-arg --count=1
eba4ac6b2c1dcb11 pahole: Fallback to pretty printing using types in multiple CUs
7c12b234ee30f6d2 dwarves: Introduce cus__find_type_by_name()
c6f3386e3364486d pahole: Make the type_instance constructor receive the looked up type + its CU
30297256e1f27de5 pahole: Pass the header type_instance to tag__stdio_fprintf_value()
ead8084d3ffcda1f pahole: Store the CU in the type_instance struct
2c886fff0af13510 pahole: Store the CU where type_enum was found
526b116bfec71054 pahole: If pretty printing, don't discard CUs, keep them
a1b8fddb4dcd90d9 pahole: Show which classes were not processed and why
bc6a3cac50cdbdf6 pahole: Fixup the --class_name parsing wrt class args (type=, sizeof=, etc)
363c37340521debe pahole: Remope pretty printed classes from the prototypes list
9f675e7fdbf525fb cmake: Use -O0 for debug builds
4e5b02beea24656d pahole: Don't stop when not finding the type_enum
823739b56f2b5230 pahole: Convert class_names into a list of struct prototypes
0a97d6c143fcc92a pahole: Factor out parsing class prototypes
80af0fbbf3a3f1f6 dutils: Allow for having a priv area per strlist
04b6547e7343410e pahole: Honour --hex_fmt when pretty printing
266c0255984ddbe7 pahole: Support filters without 'filter='
6c683ce0e11d6c1c pahole: Allow for a 'type' boolean class arg meaning 'type=type'
1c68f41bb87f7718 pahole: Allow for a 'sizeof' boolean class arg meaning 'sizeof=size'
b4b3fb0a3aeb9686 pahole: First look for ',' then '=' to allow for boolean args
446b85f7276bda4c pahole: Add support for --size_bytes, accepts header variables
0f10fa7529d4a9c7 pahole: Move reading the header to outside the --seek_bytes code
9310b04854a8b709 pahole: Add support for referencing header variables when pretty printing
611f5e8bd7eb760d pahole: Add == class member filtering
f2987224beb2b496 pahole: Do the 'type_enum' class argument validation as soon as we parse it
02ca176c6290ff96 pahole: Do the 'type' class argument validation earlier
172d743d9ce3f3a1 pahole: Do the 'sizeof' class argument validation earlier
9a30c101d7c019ee pahole: As soon as a attribute is found, check if the type is a struct or class
a38ccf47237298dc pahole: Allow filter=expression as a class argument for pretty printing
3c4ee1d91f5311ac pahole: Pretty print bitfields
451d66ec02e94492 pahole: Pretty print unions too, cope with unnamed ones
48c7704b49ffa6b1 pahole: Check if the type with arguments is present in the current CU
472519ac2c49d340 pahole: Support nested structs
ae43029363ee2c53 dwarves_fprintf: Export the 'tabs' variable
ab714acec86841b7 pahole: Support zero sized base type arrays
ff7815a0f823a676 pahole: Add missing space before '}' in array__fprintf_base_type_value()
5f2502274e1097db pahole: Support zero sized arrays in array__fprintf_base_type_value()
3aadfbdd72e32016 pahole: Follow array type typedefs to find real sizeof(entry)
7309039aa7510eec pahole: Make 'type' + 'type_enum' select a type to cast a variable sized record
42b7a759f37e5d45 dutil: Add a strlwr() helper to lowercase a string, returning it
a5bb31b86fbe5362 pahole: Fix --skip for variable sized records
f4df384d77312867 pahole: Decouple reading ->sizeof_member from printing
78cdde5cb7200555 pahole: Introduce 'type_enum' class argument
163c330d3138e56f dwarves: Introduce cu__find_enumeration_by_name()
20051b7157fce20c pahole: Add the 'type' modifier to make a struct member be used to find a cast type
210dffe0d13d171b pahole: Iterate classes in the order specified in the command line:
37a5c7c5ba0e1e7d strlist: Allow iterating a strlist in the original order
6b5d938d99b2e457 pahole: Support multiple class/struct args
affbebf04bcaa1ec pahole: Make the class splitter take into account per-class parameters
84387de4a5cf141d pahole: Allow specifying a struct member based sizeof() override
e0773683fa3edd61 dwarves: Allow setting a struct/class member as the source of sizeof()
f399db09a0d5b069 pahole: Allow simple parser for arguments to classes
04d957ba3cdf1047 pahole: Add variable for class name when traversing list of classes
f3d9054ba8ff1df0 btf_encoder: Teach pahole to store percpu variables in vmlinux BTF.
fe284221448c950d pahole: Introduce --seek_bytes
44af7c02b5d0a7f2 pahole: Implement --skip, just like dd
5631fdcea1bbe2bc pahole: Introduce --count, just like dd's
272bc75024b4f08c man-pages: Add information about stdin raw data pretty printing
66835f9e190ce77e pahole: Add support for base type arrays
1a67d6e70090953d pahole: Factor out base_type__fprintf_value()
6fb98aa1209f02b5 pahole: Support char arrays when dumping from stdin
a231d00f8d08825e pahole: Print comma at the end of field name + field value
1b2cdda38c0a6f5e dwarves: Introduce tag__is_array()
a83313fb22520d8d pahole: Pretty print base types in structs from stdin
cc65946e3068f7b6 dwarves: Adopt tag__is_base_type() from ctrace.c
d8079c6d373a5754 pahole: Hex dump a type from stdio when it isn't a tty
38109ab45fe0307d spec: Fix date
v1.17:
Fri 13 Mar 2020
f14426e41046 docs: Add command line to generate tarball with a prefix
0b2621d426ea dwarves: Avoid truncation when concatenating paths for dir entries
d7b351079583 dwarves: Don't use conf if its NULL in cus__load_running_kernel()
dde3eb086dd3 dwarves: Make list__for_all_tags() more robust
081f3618a795 dwarves: Add -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 to build libbpf
e8f43a4963bf libbpf: Get latest libbpf
de84ae36c738 cmake: libebl was merged into libdw
290b8fdbdab7 pahole: Improve --contains --recursive a bit
3d5be866e55f pahole: Fill 'tab' with spaces earlier
88674f039551 gobuffer: Do not crash on object without any public symbols
cb17f94f46a0 Add changes-v1.16 to the MANIFEST file
32a19e044c93 pahole: Fix changelog date in dwarves.spec
9b09f578b7d1 pahole: Initialize var to silence -Werror=maybe-uninitialized on gcc version 4.8.5 20150623
277c2b3d1b4a man-pages: Add section about --hex + -E to locate offsets deep into sub structs
812c980b3f76 man-pages: Update some info, expand BTF info, add some EXAMPLES
e0942c7b031f pahole: Add support for finding pointers to void
6a326e93088e pahole: Make --contains and --find_pointers_to to work with base types
3c1a9a3329d9 pahole: Make --contains look for more than just unions, structs
ded5d36f9cf5 dwarves: Introduce cu__find_type_by_name
88d99562e55c pahole: Add --structs to ask just for structs, counterpart of --unions
0b444cf1118c pahole: Make --contains and --find_pointers_to honour --unions
a8a7e605bb45 pahole: Make --find_pointers_to consider unions
0dc327e382f8 pahole: Consider unions when looking for classes containing some class
3661f17d0b2c pahole: Introduce --unions to consider just unions
2dd09c617101 pahole: union have no holes, fix --sizes formatter
6c29cca8c28f pahole: Don't consider unions for options that only make sense for structs
dcba200367f7 pahole: When the sole argument passed isn't a file, take it as a class name
1944de0c93e6 pahole: Use function__for_each_parameter()
66e640508e4d dwarves: Make function__for_each_parameter receive 'cu' arg
252b0fcc91cc pahole: Fix -m/--nr_methods - Number of functions operating on a type pointer
202c8d5f5bd5 pahole: Do not require a class name to operate without a file name
617f5ac2e6c9 dwarves: Move BTF loader ahead of the CTF one
cdd5e1399b9c btf loader: Support raw BTF as available in /sys/kernel/btf/vmlinux
v1.16:
Mon Dec 16 2019
69df73444c69 (HEAD -> master, acme.korg/master) dwarves: Add -O2 to CFLAGS
6d11dd157f75 elfcreator: Address initialization warning emitted by 'gcc -O6'
1bc63a4cffa7 fprintf: Fixup truncation possibility pointed out by gcc -O2
5c590fc29d06 ptr_table: Zero out new id ranges
644466dce77f fprintf: Remove extraneous sizeof operator
a59459bb80e7 fprintf: Account inline type __aligned__ member types for spacing
56547f133a5b fprintf: Fix alignment of class members that are structs/enums/unions
be37b64aef38 dwarves: Ignore static members for alignment
cca018e495a8 SPEC: Add dwarves dependency on libdwarves1
ccf3eebfcd9c btf_loader: Add support for BTF_KIND_FUNC
f95fd85f7b53 pfunct: type->type == 0 is void, fix --compile for that
3e8f09e304ba (origin/master, origin/HEAD) pdwtags: Print DW_TAG_subroutine_type as well
3c5f2a224aa1 btf_encoder: Preserve and encode exported functions as BTF_KIND_FUNC
910e060b5c4b btf_loader: Skip BTF_KIND_DATASEC entries
96235a74a34d btf_loader: Replace if/else series with a proper switch {}
a4ba2234ff58 btf_loader: Support BTF_KIND_VAR
5965ce015eab dwarves: Fix ptr_table__add_with_id() handling of pt->nr_entries
173911ac38ea btf_loader: Show the unknown kind numbers
0d8e11e8568e pglobal: Allow passing the format path specifier, to use with BTF
ba27df9f2f94 CMakeLists: Use lib/bpf/include/uapi when building libdwarves
95517e1d995e libbpf: Get latest libbpf
ca294eebfc47 MANIFEST: Add missing files
d5e01d10e515 fprintf: Set tconf.type_spacing earlier
c6a9a0eb6ac7 fprintf: Fix up decrementing recursivity level in type__fprintf()
93c3cdf89715 cmake: Add -Wall to CFLAGS
7360f0528ff3 elfcreator: Remove unused 'machine' variable
0f52b11f911c prefcnt: Avoid ambiguous else with for_each macro
608813d0affa pglobal: Avoid ambiguous else
77d06c2d305d reorganize: Enclose bitfield routines under ifdef
2221ae30bce9 reorganize: Ditch unused variable
c419c513eae5 libbtf: Enlarge the 'cmd' buffer to not possibly truncate the pathname
092fffe56701 btf_loader: Enum values are s32, cast before calling btf_elf__get32()
7bfb1aa80f9a libctf: Enlarge the 'cmd' buffer to not possibly truncate the pathname
f67c281f9841 fprintf: Correct the type for the 'cacheline' variable, it should be uint32_t
7b36fab5a8df fprintf: Add guard against unlikely overlapping copy
e737976c09d9 fprintf: Do not scrub type when looking up its type
e95dacb704bf fprintf: Remove unused printf arg when printing enumerations
71c4f83f2828 emit: Remove unused 'is_pointer' variable
fe87354c31bb dwarves: Ditch unused asprintf() function
60c73a769882 dwarves: We need to consistently check if 'conf was specified
5fdfd09a6bbe dwarves: Fix check in type__find_first_biggest_size_base_type_member()
24ced5be8a75 dwarf_loader: Fix array overrun access
33e2d7aa35a7 ctf_loader: Plug leak when bailing out due to unknown tag
aefa9303818b codiff: Remove unused filenames variable
de5e72bc15fb btf_loader: Plug leak when bailing out due to unknown tag
511a79129494 dwarves: Remove unused variable
b1412a88bb61 fprintf: Fixup handling classes with no members
[acme@quaco pahole]$
v1.15
Thu Jun 27 2019
3ed9a67967cf fprintf: Avoid null dereference with NULL configs
568dae4bd498 printf: Fixup printing "const" early with "const void"
68f261d8dfff fprintf: Fix recursively printing named structs in --expand_types
139a3b337381 ostra: Initial python3 conversion
01276a7e8966 spec: Sync spec with fedora's
9f1f0628b9ad rpm: Add missing devel headers
989dc3f1ba0d cmake: Install missing devel headers
v1.13
Tue Apr 16 2019
See changes-v1.13 for a more verbose description of the changes.
0fb727166a0e pfunct: Strip inlines in the code generated for --compile
7b967744db7b emit: Emit the types for inline structs defined in pointer members
30526e2848db fprintf: Print relative offsets for inner pointer structs
cfa377c238f8 emit: Do not emit a forward declararion to a nameless struct
cf459ca16fb2 fprintf: Pretty print struct members that are pointers to nameless structs
09ed2e78befe pfunct: Emit definitions for pointers inside pointer to function args
e9fc2f647026 fullcircle: Check that we found the CFLAGS
05921c47f557 emit: Handle typedefs that are a pointer to typedefs
87af9839bf63 fullcircle: Try building from pfunct --compile and check types
c7fd9cc1fe97 pfunct: Fixup more return types
56c50b8dbe9b emit: Make find_fwd_decl a bit more robust
2bcb01fc2f9d fprintf: Handle single zero sized array member structs
0987266cd9e2 fprintf: Deal with zero sized arrays in the midle of a union
1101337a7450 fprintf: Deal with zero sized arrays in the middle of a struct
13aa13eb0ca4 fprintf: Don't reuse 'type' in multiple scopes in the same function
c8fc6f5a7a46 core: Use unnatural alignment of struct embedded in another to infer __packed__
6f0f9a881589 fprintf: Fixup multi-dimensional zero sized arrays const handling
9a4d71930467 fprintf: Allow suppressing the inferred __attribute__((__packed__))
ec935ee422b0 fprintf: Allow suppressing the output of force paddings at the end of structs