Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Nov 2016 00:40:46 +0700
From:      Eugene Grosbein <eugen@grosbein.net>
To:        Adrian Chadd <adrian.chadd@gmail.com>
Cc:        "freebsd-mips@freebsd.org" <freebsd-mips@freebsd.org>
Subject:   Re: MIPS code size strangeness
Message-ID:  <5837261E.9040700@grosbein.net>
In-Reply-To: <58371526.4050908@grosbein.net>
References:  <5831E800.60003@grosbein.net> <CAJ-VmokUfc2ABY1O0B7RqzfCmU_99VwnCmmHfhcRhM5NcH4Ubg@mail.gmail.com> <5832FF33.9010307@grosbein.net> <CAF19XB%2BwS%2BeCrv1mtmXLS1b7SJNZbQUD_2PFZXkhyvX-4wfeLQ@mail.gmail.com> <58330AB6.60306@grosbein.net> <CAF19XBLaZ=t_HPm079vsXvT5vBLunPib94d6=hNkzRd2xz5EPg@mail.gmail.com> <58332491.3000706@grosbein.net> <CAJ-Vmo=Zp2HFLcd5293G-9odo-8r=qa1j=FsJoD-jxMiMJXKAQ@mail.gmail.com> <58332940.8030606@grosbein.net> <CAJ-VmokTECO2kfRKsBiESCCygfM8qh_NzL4pzik8H7KL6pw6HQ@mail.gmail.com> <58346974.2020907@grosbein.net> <CAJ-VmokX_ThysU0vRxKWeAQL4JLFHh5vH6rDbtRitCpPCm=_TQ@mail.gmail.com> <58371526.4050908@grosbein.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 24.11.2016 23:28, Eugene Grosbein wrote:
> On 24.11.2016 05:11, Adrian Chadd wrote:
>> It's the mips-xtoolchain or xtoolchain-mips-gcc or something
> 
> Thanks!
> 
> I've changed the port devel/powerpc64-gcc (master port for devel/mips-gcc) slightly
> to build gcc-6.2.0 instead of gcc-5.3.0 and it builds and installs just fine
> using command make FREEBSD_EXTENSION=yes install
> 
> Then, I've installed devel/mips-xtoolchain-gcc and run buildworld using CROSS_TOOLCHAIN=mips-gcc.
> It fails:
> 
> --- cancelpoints_sem_new.o ---
> {standard input}: Assembler messages:
> {standard input}:1347: Error: opcode not supported on this processor: mips1 (mips1) `ll $5,4($4)'
> {standard input}:1350: Error: opcode not supported on this processor: mips1 (mips1) `sc $5,4($4)'
> {standard input}:1360: Error: opcode not supported on this processor: mips1 (mips1) `sync'
> {standard input}:1456: Error: opcode not supported on this processor: mips1 (mips1) `ll $4,0($17)'
> {standard input}:1459: Error: opcode not supported on this processor: mips1 (mips1) `sc $4,0($17)'
> {standard input}:1469: Error: opcode not supported on this processor: mips1 (mips1) `sync'
> {standard input}:1697: Error: opcode not supported on this processor: mips1 (mips1) `sync'
> {standard input}:1702: Error: opcode not supported on this processor: mips1 (mips1) `ll $5,4($4)'
> {standard input}:1705: Error: opcode not supported on this processor: mips1 (mips1) `sc $5,4($4)'
> *** [cancelpoints_sem_new.o] Error code 1
> 
> I try to build code for TP-Link WDR3600.
> I'm not familiar with MIPS assembler. Is there a way to alter gcc6 code generator to avoid this error?

I've managed to build FreeBSD12/mips using gcc6 and additional src.conf knobs:

CROSS_TOOLCHAIN=mips-gcc
WITHOUT_CROSS_COMPILER=yes
CROSSENV+=CFLAGS="-march=mips32"

This time, ucl_hash_replace() function takes 628 bytes (0x274) instead of 25000:

# nm -C -D --print-size --size-sort libprivateucl.so.1 | grep ucl_hash_replace
0003098c 00000274 T ucl_hash_replace

However, libprivateucl.so.1 still takes 247224 bytes in case of FreeBSD12/mips
comparing with 136064 bytes in case of FreeBSD11/amd64.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5837261E.9040700>