Skip to content
  • Alexey Brodkin's avatar
    arc: build libgcc in U-Boot · a67ef280
    Alexey Brodkin authored
    
    
    This way we may have very limited set of functions implemented so we
    save some space.
    
    Also it allows us to build U-Boot for any ARC core with the same one
    toolchain because we don't rely on pre-built libgcc.
    
    For example:
     * we may use little-endian toolchain but build U-Boot for ether
    endianess
     * we may use non-multilibbed uClibc toolchain but build U-Boot for
    whatever ARC CPU flavour that current GCC supports
    
    Private libgcc built from generic C implementation contributes only 144
    bytes to .text section so we don't see significant degradation of size:
    --->8---
    $ arc-linux-size u-boot.libgcc-prebuilt
       text	   data	    bss	    dec	    hex	filename
     222217	  24912	 214820	 461949	  70c7d	u-boot.libgcc-prebuilt
    
    $ arc-linux-size u-boot.libgcc-private
       text	   data	    bss	    dec	    hex	filename
     222361	  24912	 214820	 462093	  70d0d	u-boot.libgcc-private
    --->8---
    
    Also I don't notice visible performance degradation compared to
    pre-built libgcc (where at least "*div*" functions are had-written in
    assembly) on typical operations of downloading 10Mb uImage over TFTP and
    bootm.
    
    Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
    a67ef280