Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

suddenly macOS cross-build throws "error: 'vfork' is deprecated: Use posix_spawn or fork"



So yesterday I built -current successfully, ran into the
pthread_atfork() problem while testing the result, then before I went to
sleep I did another "git pull" because kre had committed a new patch for
that, and so I fired off another build, only to be greeted by the
following today:


/Volumes/work/woods/g-NetBSD-src/tools/gdb/../../external/gpl3/gdb/dist/gdb/cli/cli-cmds.c:928:14: error: 'vfork' is deprecated: Use posix_spawn or fork [-Werror,-Wdeprecated-declarations]
  928 |   if ((pid = vfork ()) == 0)
      |              ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
  604 | __deprecated_msg("Use posix_spawn or fork")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
  CXX    compile/compile-object-load.o
  CXX    compile/compile-object-run.o
1 error generated.
nbgmake[1]: *** [cli/cli-cmds.o] Error 1
nbgmake[1]: *** Waiting for unfinished jobs....
nbgmake: *** [install-gdb] Error 2
--- .install_done ---

*** Failed target: .install_done
*** In directory: /Volumes/work/woods/g-NetBSD-src/tools/gdb
*** Failed commands:
        @(cd ${.OBJDIR}/build && ${BUILD_COMMAND} ${INSTALL_TARGET})
        => @(cd /Users/woods/build/woods/very.local/trunk-x86_64-amd64-obj/Volumes/work/woods/g-NetBSD-src/tools/gdb/build && /usr/bin/env -i AR=ar  AWK=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nbawk  CC=cc  CFLAGS=-O\ -O2\ -O2\ -no-cpp-precomp  CONFIG_SHELL=/bin/dash  CPPFLAGS=\ -I/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/include  CXX=c++  CXXFLAGS=-O\ -O2\ -D__STDC_FORMAT_MACROS\ -D__STDC_LIMIT_MACROS\ -D__STDC_CONSTANT_MACROS  INSTALL=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/x86_64--netbsd-install\ -c\ -p\ -r  LDFLAGS=-O  LEX=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nblex  FLEX=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nblex  M4=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nbm4  MAKE=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nbgmake  PATH="/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin:$PATH"  RANLIB=ranlib  
 YACC=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nbyacc am_cv_func_iconv=no MACHINE= BISON=true DESTDIR= INSTALL=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/x86_64--netbsd-install\ -c\ -p\ -r V=0 /Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nbgmake -j 24 -e MACHINE= BISON=true DESTDIR= INSTALL=/Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/x86_64--netbsd-install\ -c\ -p\ -r -s V=0 install-gdb)
        @touch $@
        => @touch .install_done
*** [.install_done] Error code 2

nbmake[6]: stopped making "install" in /Volumes/work/woods/g-NetBSD-src/tools/gdb


I'm cross-building on macOS, for amd64.

I don't see anything relevant in the changes I pulled between builds,
and there shouldn't have been any changes to the macOS toolchain.

I'm not even sure why tools/gdb had to be rebuilt, nor why it is being
rebuilt during "make install-gdb".  It's a massively parallel build so
reading the log is difficult.  All I see that might be relevant is that
for some reason it wanted to re-run config.status:

install-gcc ===> tools  (with: install-gdb)
install ===> tools/gdb
  GEN    config.status
  GEN    Makefile
  GEN    stamp-h
  GEN    jit-reader.h
  GEN    stamp-version
  GEN    init.c
  GEN    gdb-gdb.py
  GEN    gdb-gdb.gdb
  GEN    xml-builtin.c
  GEN    gcore

Maybe it's just stupidity in the gdb Makefile as when I manually run
"dependall" it does nothing, but "make install" wants to build things:

12:54 [4947] $ cd tools/gdb
12:55 [4948] $ mynbmake dependall
12:55 [4949] $ mynbmake install
  CXX    cli/cli-cmds.o

One thing I do know is that there might have been some incomplete
intermediate targets in the build tree from earlier build failures in an
unrelated part of the tree.  The change Roland made to "make" the other
day didn't actually fix the problem for me (more in a separate email).

I guess I'll clean it out and start with a fresh new whole build again.

--
					Greg A. Woods <gwoods%acm.org@localhost>

Kelowna, BC     +1 250 762-7675           RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>

Attachment: pgpAypfACS0eE.pgp
Description: OpenPGP Digital Signature



Home | Main Index | Thread Index | Old Index