x86_64-pc-linux-gnu-gcc-7.3.0 -fPIC -march=x86-64 -mtune=k8 -mcx16 -msahf -msse3 --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -O2 -pipe -frecord-gcc-switches -shared -o libhangouts.so libhangouts.c hangouts.pb-c.c hangout_media.pb-c.c gmail.pb-c.c hangouts_json.c hangouts_pblite.c hangouts_connection.c hangouts_auth.c hangouts_events.c hangouts_conversation.c hangouts_media.c purple2compat/http.c purple2compat/purple-socket.c -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -lprotobuf-c `x86_64-pc-linux-gnu-pkg-config purple glib-2.0 json-glib-1.0 zlib --libs --cflags` -ldl -I/usr/include/protobuf-c -Ipurple2compat Please instruct upstream to compile units separately. Otherwise, this loses all the benefit of parallel make, distcc, etc.
Thanks Michał, good point. I'll do it.
https://bitbucket.org/EionRobb/purple-hangouts/pull-requests/23 Works for me. I'll make a patch for the ebuild as well (it it won't be merged upstream sooner).
Strange, but it takes more time to compile if I use parallel compilation, something like this: Without the patch: 6.75s With the patch: -j1: 6.78s -j2: 7.53s -j4: 9.61s (On my laptop, Core i7-6600U, two cores, HT) Can it be still be useful to compile units separately?
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3efa5cd6704e8599850512aa2d5df28c3693e2b commit c3efa5cd6704e8599850512aa2d5df28c3693e2b Author: Stefan Strogin <stefan.strogin@gmail.com> AuthorDate: 2018-12-06 10:19:17 +0000 Commit: Aaron Bauman <bman@gentoo.org> CommitDate: 2019-02-27 04:50:10 +0000 x11-plugins/purple-hangouts: compile units separately Closes: https://bugs.gentoo.org/672538 Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Stefan Strogin <stefan.strogin@gmail.com> Signed-off-by: Aaron Bauman <bman@gentoo.org> .../purple-hangouts-0_p20181202-makefile.patch | 65 ++++++++++++++++++++++ .../purple-hangouts-0_p20181202.ebuild | 2 + .../purple-hangouts/purple-hangouts-9999.ebuild | 4 +- 3 files changed, 70 insertions(+), 1 deletion(-)