bpf: align function entry point to 64 bits
authorYiFei Zhu <zhuyifei1999@gmail.com>
Thu, 22 Apr 2021 10:05:56 +0000 (05:05 -0500)
committerDavid Faust <david.faust@oracle.com>
Fri, 23 Apr 2021 16:56:20 +0000 (09:56 -0700)
Libbpf does not treat paddings after functions well. If function
symbols does not cover a whole text section, it will emit error
similar to:

  libbpf: sec '.text': failed to find program symbol at offset 56

Each instruction in BPF is a multiple of 8 bytes, so align the
functions to 8 bytes, similar to how clang does it.

2021-04-22  YiFei Zhu  <zhuyifei1999@gmail.com>

gcc/

* config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.

gcc/config/bpf/bpf.h

index 9e2f526..6a3907f 100644 (file)
@@ -57,8 +57,8 @@
    64-bit at any time.  */
 #define STACK_BOUNDARY 64
 
-/* Function entry points are aligned to 128 bits.  */
-#define FUNCTION_BOUNDARY 128
+/* Function entry points are aligned to 64 bits.  */
+#define FUNCTION_BOUNDARY 64
 
 /* Maximum alignment required by data of any type.  */
 #define BIGGEST_ALIGNMENT 64