On Wed, 18 Jul 2018 at 09:37, Waldemar Brodkorb <w...@uclibc-ng.org> wrote:
>
> Hi Christophe,
> Waldemar Brodkorb wrote,
>
> > Hi Christophe,
> >
> > i am doing a large testrun for the global changes and hopefully push on 
> > monday or at least have some news. i am afk atm with just little access to 
> > a computer.
> >
>
> ARM v5 soft eabi arm mode fails to compile, see the attached error
> log. You can check with embedded-test.sh if you like.
>
> Any idea? All patches appliend on top of master,

Thanks for testing this configuration.

I left FDPIC-only code activated unconditionally.

Can you try the attached small patch?

I have an embedded-test.sh build running now. Sorry, I didn't know
about this script, I have used armv5 as arch, is it the one you meant?

I am on holidays atm, so I may not respond timely for a while.

Thanks,

Christophe

>
> best regards
>  Waldemar
diff --git a/ldso/ldso/arm/dl-sysdep.h b/ldso/ldso/arm/dl-sysdep.h
index 2bb0023..be53bd6 100644
--- a/ldso/ldso/arm/dl-sysdep.h
+++ b/ldso/ldso/arm/dl-sysdep.h
@@ -77,6 +77,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, 
int reloc_entry);
    ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
    of the main executable's symbols, as for a COPY reloc.
 
+#ifdef __FDPIC__
    Avoid R_ARM_ABS32 to go through the PLT so that R_ARM_TARGET1
    translated to R_ARM_ABS32 doesn't use the PLT: otherwise, this
    breaks init_array because functions are referenced through the
@@ -87,6 +88,13 @@ unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, 
int reloc_entry);
      || (type) == R_ARM_TLS_DTPOFF32 || (type) == R_ARM_TLS_TPOFF32)   \
     * ELF_RTYPE_CLASS_PLT)                                             \
    | (((type) == R_ARM_COPY) * ELF_RTYPE_CLASS_COPY))
+#else
+#define elf_machine_type_class(type)                                   \
+  ((((type) == R_ARM_JUMP_SLOT || (type) == R_ARM_TLS_DTPMOD32         \
+     || (type) == R_ARM_TLS_DTPOFF32 || (type) == R_ARM_TLS_TPOFF32)   \
+    - ELF_RTYPE_CLASS_PLT)                                             \
+   | (((type) == R_ARM_COPY) * ELF_RTYPE_CLASS_COPY))
+#endf /* __FDPIC__ */
 
 /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
    first element of the GOT.  We used to use the PIC register to do this
@@ -125,6 +133,7 @@ elf_machine_dynamic (void)
 
 extern char __dl_start[] __asm__("_dl_start");
 
+#ifdef __FDPIC__
 /* We must force strings used early in the bootstrap into the data
    segment.  */
 #undef SEND_EARLY_STDERR
@@ -133,6 +142,7 @@ extern char __dl_start[] __asm__("_dl_start");
 
 #undef INIT_GOT
 #include "../fdpic/dl-sysdep.h"
+#endif /* __FDPIC__ */
 
 /* Return the run-time load address of the shared object.  */
 static __always_inline Elf32_Addr __attribute__ ((unused))
_______________________________________________
devel mailing list
devel@uclibc-ng.org
https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to