> -----Original Message----- > From: rjwysocki@xxxxxxxxx [mailto:rjwysocki@xxxxxxxxx] On Behalf Of > Rafael J. Wysocki > Sent: Tuesday, October 3, 2017 11:21 AM > To: Moore, Robert <robert.moore@xxxxxxxxx> > Cc: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>; Zheng, Lv > <lv.zheng@xxxxxxxxx>; Wu, Fengguang <fengguang.wu@xxxxxxxxx>; kbuild- > all@xxxxxx; linux-acpi@xxxxxxxxxxxxxxx; devel@xxxxxxxxxx; linux- > pm@xxxxxxxxxxxxxxx > Subject: Re: [pm:bleeding-edge 12/41] utstrsuppt.c:undefined reference > to `__udivdi3' > > On Tue, Oct 3, 2017 at 6:43 PM, Moore, Robert <robert.moore@xxxxxxxxx> > wrote: > > > > > >> -----Original Message----- > >> From: Rafael J. Wysocki [mailto:rjw@xxxxxxxxxxxxx] > >> Sent: Tuesday, October 3, 2017 4:32 AM > >> To: Moore, Robert <robert.moore@xxxxxxxxx>; Zheng, Lv > >> <lv.zheng@xxxxxxxxx> > >> Cc: Wu, Fengguang <fengguang.wu@xxxxxxxxx>; kbuild-all@xxxxxx; linux- > >> acpi@xxxxxxxxxxxxxxx; devel@xxxxxxxxxx; linux-pm@xxxxxxxxxxxxxxx > >> Subject: Re: [pm:bleeding-edge 12/41] utstrsuppt.c:undefined > >> reference to `__udivdi3' > >> > >> On Tuesday, October 3, 2017 4:25:52 AM CEST kbuild test robot wrote: > >> > tree: > https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux- > >> pm.git bleeding-edge > >> > head: 09b089a247ea7272df93a2116368bf24b656cd65 > >> > commit: 05545b3fb6eab35290413211617793bc274e136b [12/41] ACPICA: > >> Restructure/cleanup all string-to-integer conversion functions > >> > config: i386-defconfig (attached as .config) > >> > compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 > >> > reproduce: > >> > git checkout 05545b3fb6eab35290413211617793bc274e136b > >> > # save the attached .config to linux build tree > >> > make ARCH=i386 > >> > > >> > All errors (new ones prefixed by >>): > >> > > >> > drivers/acpi/acpica/utstrsuppt.o: In function > >> `acpi_ut_insert_digit': > >> > >> utstrsuppt.c:(.text+0x33): undefined reference to `__udivdi3' > >> > >> __udivdi3() doesn't work on 32-bit x86 AFAICS. > >> > >> Can we avoid using it or at least put it under #ifdef somehow? > > [Moore, Robert] > > > > > > I take it that __udivdi3 is a 64-bit divide? > > Practically, yes (AFAICS). > > > We do have a local divide implementation(s) for things like this. > > > > However, I don't see a divide in ut_insert_digit; There is a 64-bit > divide in ut_strtoul_add_64, however. [Moore, Robert] Oops, sorry. The divided is in strtoul_multiply_64. We are checking for an overflow condition up front. > > > > So, there are no issues with 64-bit add, subtract, and multiply? > > The only problematic one I know of is __udivdi3(). ��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f