On Wed, Nov 02, 2016 at 02:22:00AM +0000, Ximin Luo wrote: >... Thanks a lot for debugging this.
> let emit_load_symbol_addr dst s = > if !Clflags.pic_code then begin > [..] > end else if !arch > ARMv6 && not !Clflags.dlcode && !fastcode_flag then > begin > ` movw {emit_reg dst}, #:lower16:{emit_symbol s}\n`; > ` movt {emit_reg dst}, #:upper16:{emit_symbol s}\n`; > 2 > > Note that !arch in ocaml means "get the current value of the mutable > reference 'arch'". The armel port has a lower baseline than armhf, this would explain the difference between these ports. > It looks like they already wrote the working code, it's just not being > emitted here. So I just need to figure out how to make Cflags.pic_code true, > which shouldn't be too hard. I will try this tomorrow when I'm less tired. asmcomp/amd64/arch.ml:let pic_code = ref true asmcomp/arm/arch.ml:let pic_code = ref false cu Adrian [1] https://patches.ubuntu.com/o/ocaml/ocaml_4.02.3-6ubuntu2.patch -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed