Re: arm64 stable/13 buildworld stops in bc
- Reply: Matthew Grooms : "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 10:51:46 UTC
On 6/26/2021 5:20 AM, Stefan Esser wrote: > Am 26.06.21 um 11:18 schrieb Matthew Grooms: >> 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. > Hi Matthew, > > that might explain it ... > > But in fact, if it did, there would be an issue, since that would indicate > that headers from the running system were used to build the new bc. > > BUT: The error messages clearly indicate a build failure caused by a mismatch > between declarations in /usr/src/contrib/bc/include/ and calls in the c files. > > And since all files are within /usr/src/contrib/bc/, it is apparent that files > in the base system do not play a role. > > Please compare your sources in /usr/src/contrib/bc/ with those in the > repository (starting at the link I sent). > > You could also go to that directory and perform "git log ." to get a list > of commits that you have on your system - compare that with the log in the > repository. > > Anyway, I do not see that there is anything wrong in general, and I do assume > it is an issue on your build system. > > Not much that I could do, I'm afraid. Hi Stefan, Thanks again for the assistance. I just did a fresh clone of stable/13 ... root@build:~ # git clone -b stable/13 https://git.freebsd.org/src.git /usr/src Cloning into '/usr/src'... remote: Enumerating objects: 378566, done. remote: Counting objects: 100% (378566/378566), done. remote: Compressing objects: 100% (27086/27086), done. remote: Total 3965834 (delta 372825), reused 351480 (delta 351480), pack-reused 3587268 Receiving objects: 100% (3965834/3965834), 1.31 GiB | 18.79 MiB/s, done. Resolving deltas: 100% (3140074/3140074), done. Updating files: 100% (85386/85386), done. I will attempt to cross-compile world again and then report back here. Thanks, -Matthew