(NFC) Symbolic names for Android ELF note types.
Bug: b/135772972
Test: none
Change-Id: Ia972200337d4e9a2adeba196edd06dd98348b6cd
diff --git a/libc/arch-arm/bionic/kuser_helper_on.S b/libc/arch-arm/bionic/kuser_helper_on.S
index cff2073..2a1d86d 100644
--- a/libc/arch-arm/bionic/kuser_helper_on.S
+++ b/libc/arch-arm/bionic/kuser_helper_on.S
@@ -26,13 +26,15 @@
* SUCH DAMAGE.
*/
+#include <private/bionic_asm_note.h>
+
.section .note.android.kuser_helper_on,"a",%note
.balign 4
.type kuser_helper_on, %object
kuser_helper_on:
.long 2f-1f // int32_t namesz
.long 3f-2f // int32_t descsz
- .long 3 // int32_t type
+ .long NT_TYPE_KUSER // int32_t type
1:.ascii "Android\0" // char name[]
2:.long 1 // int32_t on
3:
diff --git a/libc/arch-common/bionic/crtbrand.S b/libc/arch-common/bionic/crtbrand.S
index 3d80d73..307ef2e 100644
--- a/libc/arch-common/bionic/crtbrand.S
+++ b/libc/arch-common/bionic/crtbrand.S
@@ -32,13 +32,15 @@
__bionic_asm_custom_note_gnu_section()
#endif
+#include <private/bionic_asm_note.h>
+
.section .note.android.ident,"a",%note
.balign 4
.type abitag, %object
abitag:
.long 2f-1f // int32_t namesz
.long 3f-2f // int32_t descsz
- .long 1 // int32_t type
+ .long NT_TYPE_IDENT // int32_t type
#ifdef __ANDROID__
1:.ascii "Android\0" // char name[]
2:.long PLATFORM_SDK_VERSION // int32_t android_api
diff --git a/libc/private/bionic_asm_note.h b/libc/private/bionic_asm_note.h
new file mode 100644
index 0000000..c335c5a
--- /dev/null
+++ b/libc/private/bionic_asm_note.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#pragma once
+
+#define NT_TYPE_IDENT 1
+#define NT_TYPE_KUSER 3