diff --git a/linker/Android.bp b/linker/Android.bp
index 4aadc2e..0533ae9 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -553,14 +553,20 @@
         "linker_sleb128_test.cpp",
         "linker_utils_test.cpp",
         "linker_gnu_hash_test.cpp",
+        "linker_crt_pad_segment_test.cpp",
 
         // Parts of the linker that we're testing.
+        ":elf_note_sources",
         "linker_block_allocator.cpp",
         "linker_config.cpp",
         "linker_debug.cpp",
         "linker_note_gnu_property.cpp",
         "linker_test_globals.cpp",
         "linker_utils.cpp",
+        "linker_phdr.cpp",
+        "linker_mapped_file_fragment.cpp",
+        "linker_sdk_versions.cpp",
+        "linker_dlwarning.cpp",
     ],
 
     static_libs: [
@@ -569,6 +575,12 @@
         "liblog_for_runtime_apex",
     ],
 
+    data_libs: [
+        "crt_pad_segment_disabled",
+        "crt_pad_segment_enabled",
+        "no_crt_pad_segment",
+    ],
+
     arch: {
         arm: {
             srcs: ["arch/arm_neon/linker_gnu_hash_neon.cpp"],
diff --git a/linker/linker_crt_pad_segment_test.cpp b/linker/linker_crt_pad_segment_test.cpp
new file mode 100644
index 0000000..5a219f8
--- /dev/null
+++ b/linker/linker_crt_pad_segment_test.cpp
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+
+#include <android-base/file.h>
+#include <android-base/unique_fd.h>
+
+#include "linker_phdr.h"
+
+#include <gtest/gtest.h>
+
+#include <fcntl.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <string>
+
+using ::android::base::GetExecutableDirectory;
+using ::android::base::unique_fd;
+
+namespace {
+
+static std::string GetTestElfPath(const std::string& filename) {
+  static std::string test_data_dir = GetExecutableDirectory();
+
+  return test_data_dir + "/" + filename;
+}
+
+bool GetPadSegment(const std::string& elf_path) {
+  std::string path = GetTestElfPath(elf_path);
+
+  unique_fd fd{TEMP_FAILURE_RETRY(open(path.c_str(), O_CLOEXEC | O_RDWR))};
+  EXPECT_GE(fd.get(), 0) << "Failed to open " << path << ": " << strerror(errno);
+
+  struct stat file_stat;
+  EXPECT_NE(TEMP_FAILURE_RETRY(fstat(fd.get(), &file_stat)), -1)
+        << "Failed to stat " << path << ": " << strerror(errno);
+
+  ElfReader elf_reader;
+  EXPECT_TRUE(elf_reader.Read(path.c_str(), fd.get(), 0, file_stat.st_size))
+        << "Failed to read ELF file";
+
+  return elf_reader.should_pad_segments();
+}
+
+};  // anonymous namespace
+
+TEST(crt_pad_segment, note_absent) {
+  ASSERT_FALSE(GetPadSegment("no_crt_pad_segment.so"));
+}
+
+TEST(crt_pad_segment, note_present_and_enabled) {
+  ASSERT_TRUE(GetPadSegment("crt_pad_segment_enabled.so"));
+}
+
+TEST(crt_pad_segment, note_present_and_disabled) {
+  ASSERT_FALSE(GetPadSegment("crt_pad_segment_disabled.so"));
+}
diff --git a/linker/linker_test_globals.cpp b/linker/linker_test_globals.cpp
index 33a78b0..4b41eed 100644
--- a/linker/linker_test_globals.cpp
+++ b/linker/linker_test_globals.cpp
@@ -29,3 +29,8 @@
 // To enable logging
 int g_ld_debug_verbosity = 0;
 
+// Stub some symbols to avoid linking issues
+void DL_WARN_documented_change(int api_level [[maybe_unused]],
+                               const char* doc_link [[maybe_unused]],
+                               const char* fmt [[maybe_unused]], ...) {}
+
diff --git a/linker/testdata/Android.bp b/linker/testdata/Android.bp
new file mode 100644
index 0000000..f998180
--- /dev/null
+++ b/linker/testdata/Android.bp
@@ -0,0 +1,38 @@
+// Copyright (C) 2024 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_library_shared {
+    name: "crt_pad_segment_enabled",
+    srcs: ["hello_world.c"],
+}
+
+cc_library_shared {
+    name: "crt_pad_segment_disabled",
+    srcs: [
+        "hello_world.c",
+        "crt_pad_segment_disabled.S",
+    ],
+    include_dirs: ["bionic/libc"], // bionic_asm_note.h
+    no_crt_pad_segment: true,
+}
+
+cc_library_shared {
+    name: "no_crt_pad_segment",
+    srcs: ["hello_world.c"],
+    no_crt_pad_segment: true,
+}
diff --git a/linker/testdata/crt_pad_segment_disabled.S b/linker/testdata/crt_pad_segment_disabled.S
new file mode 100644
index 0000000..cc2d266
--- /dev/null
+++ b/linker/testdata/crt_pad_segment_disabled.S
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+
+#include <private/bionic_asm_note.h>
+
+  .section ".note.android.pad_segment", "a", %note
+  .balign 4
+  .long 1f - 0f                       // int32_t namesz
+  .long 3f - 2f                       // int32_t descsz
+  .long NT_ANDROID_TYPE_PAD_SEGMENT   // int32_t type
+0:
+  .asciz "Android"                    // char name[]
+1:
+  .balign 2
+2:
+  .long 0    // Disabled
+3:
+  .balign 2
diff --git a/linker/testdata/hello_world.c b/linker/testdata/hello_world.c
new file mode 100644
index 0000000..ad179f6
--- /dev/null
+++ b/linker/testdata/hello_world.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+
+#include <stdio.h>
+
+void hello_world(void) {
+    printf("Hello world\n");
+}
