From dec48bdd9ee090f3b0e3ff22dcac4689a146e8d0 Mon Sep 17 00:00:00 2001 From: Evgenii Stepanov Date: Tue, 5 Jan 2021 15:15:47 -0800 Subject: [PATCH] (NFC) Symbolic names for Android ELF note types. Bug: b/135772972 Test: none Change-Id: Ia972200337d4e9a2adeba196edd06dd98348b6cd --- libc/arch-arm/bionic/kuser_helper_on.S | 4 +++- libc/arch-common/bionic/crtbrand.S | 4 +++- libc/private/bionic_asm_note.h | 32 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 libc/private/bionic_asm_note.h diff --git a/libc/arch-arm/bionic/kuser_helper_on.S b/libc/arch-arm/bionic/kuser_helper_on.S index cff2073b7..2a1d86dde 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 + .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 3d80d7353..307ef2e34 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 + .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 000000000..c335c5a89 --- /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