> From: <s_g...@telus.net>
> Date: Tue, 1 May 2018 16:30:28 -0700
> 
> Why is the gtk libtool so slow on arm? A typical command such as:
It's not libtool, but ld, the link editor that is taking its time.

> libtool: link: cc -o .libs/testentrycompletion -pthread -O2 -pipe -g -Wall
> -Wl,-rpath-link -Wl,/usr/X11R6/lib -Wl,-rpath-link -Wl,/usr/X11R6/lib
> testentrycompletion.o -L.libs -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0
> -lgobject-2.0 -lglib-2.0 -liconv -lpcre -lintl -lffi -lc++abi -lgthread-2.0
> -lfribidi -lm -lcairo -lpthread -lpixman-1 -lfontconfig -lfreetype -lz
> -lexpat -lpng -lxcb-shm -lxcb -lxcb-render -lXrender -lX11 -lXext
> -lpangoft2-1.0 -lharfbuzz -lgraphite2 -lgdk_pixbuf-2.0 -lgmodule-2.0
> -lgio-2.0 -lcairo-gobject -lXinerama -lXi -lXrandr -lXcursor -lXfixes
> -lXcomposite -lXdamage -lepoxy -latk-1.0 -latk-bridge-2.0 -ldbus-1 -latspi
> -Wl,-rpath-link,/usr/local/lib,-rpath-link,/usr/X11R6/lib

That is linking in quite a number of libraries, some of which are
fairly sizeable.

> takes from 15 to 20 minutes on arm.  It is all cpu time, not i/o:

The binutils linker is quite crappy.  The LLVM linker is better.

> load averages:  2.03,  2.02,  2.00                 op1bsdsnap.graf.lan
> 16:26:21
> 
> 78 processes: 1 running, 76 idle, 1 on processor               up 4 days,
> 7:42
> 
> CPU states: 99.6% user,  0.0% nice,  0.4% system,  0.0% interrupt,  0.0%
> idle
> 
> Memory: Real: 59M/234M act/tot Free: 259M Cache: 98M Swap: 11M/516M
> 
>  
> 
>   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
> 
> 12051 root      64    0 7680K 8532K run       -         6:44 99.12% ld
> 
> 27209 sysadmin   2    0  972K  984K idle      select    0:49  0.00% sshd
> 
> 65728 _pflogd    4    0  716K  172K sleep     bpf       0:29  0.00% pflogd
> 
> I set up an i386 virtual system with one cpu at 3 GHz and the whole gtk
> build including all the dependencies took a few hours.  My gtk build on an
> arm orangepi with a 1.2GHz cpu has been running for over 48 hours, all due
> to libtool.  A cc compile finishes in seconds.

The orangepi probably runs at a lower speed since DVFS isn't
implemented yet.  And the Cortex-A7 simply isn't a very powerful CPU
as it is completely in-order.  Memory bandwidth on the orangepi is
probably limited as well.

Reply via email to