Re: arm64 stable/13 buildworld stops in bc
- Reply: Stefan Esser : "Re: arm64 stable/13 buildworld stops in bc"
- In reply to: Stefan Esser : "Re: arm64 stable/13 buildworld stops in bc"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 26 Jun 2021 09:18:31 UTC
On 6/26/2021 12:20 AM, Stefan Esser wrote:
> Am 26.06.21 um 04:30 schrieb Matthew Grooms:
>> Hi All,
>>
>> I've been trying to build stable/13 kernel & world periodically for arm64 and
>> either I'm not having very much luck or it's broken more times than it
>> compiles. Is there an automated process that's checking builds for that platform?
> Hi Matthew,
>
> there automated CI tests for all supported platforms, and if bc had failed
> to build there, I'd have been informed.
>
>> Most recently, world stops building with bc ( see below ). However, that looks
>> like that was last touched on June 1st. Has the build really been broken since
>> then? :/
> Not for me ...
>
>> --- all_subdir_usr.bin ---
>> /usr/src/contrib/bc/src/program.c:515:28: error: too few arguments to function
>> call, expected 3, have 2
>> bc_file_puts(&vm.fout, str);
>> ~~~~~~~~~~~~ ^
>> /usr/src/contrib/bc/include/file.h:81:6: note: 'bc_file_puts' declared here
>> void bc_file_puts(BcFile *restrict f, BcFlushType type, const char *str);
>> ^
> This looks to me like the result of an incomplete update of the sources.
>
> History editing has been added a few releases back and the function signature
> of bc_files_puts has been changed to take 3 instead of 2 arguments.
>
> It looks like you got a mismatch between this header and the callers of this
> function. Specifically, line 515 mentioned in the error message above is line
> 517 in up-to.date sources and reads:
>
> bc_file_puts(&vm.fout, bc_flush_save, str);
>
> Definitely 3 parameters there ...
>
> See https://cgit.freebsd.org/src/tree/contrib/bc/src/program.c?h=stable/13#n512
> line 517 - that's what your program.c should look like ...
>
>> /usr/src/contrib/bc/src/program.c:529:21: error: too few arguments to function
>> call, expected 2, have 1
>> bc_vm_putchar('\0');
>> ~~~~~~~~~~~~~ ^
>> /usr/src/contrib/bc/include/vm.h:437:6: note: 'bc_vm_putchar' declared here
>> void bc_vm_putchar(int c, BcFlushType type);
>> ^
>> /usr/src/contrib/bc/src/program.c:552:23: error: too few arguments to function
>> call, expected 2, have 1
>> bc_vm_putchar('\\');
>> ~~~~~~~~~~~~~ ^
>> /usr/src/contrib/bc/include/vm.h:437:6: note: 'bc_vm_putchar' declared here
>> void bc_vm_putchar(int c, BcFlushType type);
>> ^
>> /usr/src/contrib/bc/src/program.c:556:18: error: too few arguments to function
>> call, expected 2, have 1
>> bc_vm_putchar(c);
>> ~~~~~~~~~~~~~ ^
>> /usr/src/contrib/bc/include/vm.h:437:6: note: 'bc_vm_putchar' declared here
>> void bc_vm_putchar(int c, BcFlushType type);
>> ^
>> /usr/src/contrib/bc/src/program.c:601:25: error: too few arguments to function
>> call, expected 2, have 1
>> bc_file_flush(&vm.fout);
>> ~~~~~~~~~~~~~ ^
>> /usr/src/contrib/bc/include/file.h:76:6: note: 'bc_file_flush' declared here
>> void bc_file_flush(BcFile *restrict f, BcFlushType type);
>> ^
>> /usr/src/contrib/bc/src/program.c:607:49: error: too few arguments to function
>> call, expected 2, have 1
>> if (inst == BC_INST_PRINT) bc_vm_putchar('\n');
>> ~~~~~~~~~~~~~ ^
>> /usr/src/contrib/bc/include/vm.h:437:6: note: 'bc_vm_putchar' declared here
>> void bc_vm_putchar(int c, BcFlushType type);
> All the other error messages do point at a mix of source files from before
> and after introduction of the history feature, too ...
>
> The line numbers in your version of program.c seem to be off, compared to
> the current sources, e.g. check out lines 609 and 610 on the above given URL
> for the correct sources that correspond to that last error message.
>
> Update your sources to a consistent state and your issue should be resolved.
>
> Let me know if there are any further problems with this program.
Hi Stefan & Mark,
I appreciate the quick response.
That is strange. This build host didn't exist a few days ago and I
started with a fresh git clone of stable/13.I could try to re-clone that
but I'm not sure how it could have a mix of old and new sources. I also
do a git pull before every build attempt ...
root@build:/usr/src # git pull
Already up to date.
root@build:/usr/src # git status
On branch stable/13
Your branch is up to date with 'origin/stable/13'.
However, I am cross compiling aarch64 from an amd64 host which is
running the release branch ....
root@build:/usr/src # freebsd-version -u
13.0-RELEASE-p2
Do I need to update my amd64 build host to stable before cross compiling
aarch64? I wouldn't think that compiling sources from /usr/src would be
affected by release files installed on the build host.
Thanks,
-Matthew