fix error in constraints for static link libc init barrier
authorRich Felker <dalias@aerifal.cx>
Thu, 18 Oct 2018 15:41:47 +0000 (11:41 -0400)
committerRich Felker <dalias@aerifal.cx>
Thu, 18 Oct 2018 15:41:47 +0000 (11:41 -0400)
commit 4390383b32250a941ec616e8bff6f568a801b1c0 inadvertently used "r"
instead of "0" for the input constraint, which only happened to work
for the configuration I tested it on because it usually makes sense
for the compiler to choose the same input and output register.

src/env/__libc_start_main.c

index 2e5f9dcbd50f7a5ce480071e51628cbcb481c0b6..f9aa019db30a3ddc64bb1a15ab8e5d29c1070d0e 100644 (file)
@@ -80,7 +80,7 @@ int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv)
        /* Barrier against hoisting application code or anything using ssp
         * or thread pointer prior to its initialization above. */
        int (*stage2)();
-       __asm__ ( "" : "=r"(stage2) : "r"(libc_start_main_stage2) : "memory" );
+       __asm__ ( "" : "=r"(stage2) : "0"(libc_start_main_stage2) : "memory" );
        return stage2(main, argc, argv);
 }