Followed the instructions in the CPython Internals book explicitly and unable to compile v3.9.0b1. Unable to continue with the book...
Steps & output as follows:
Cloned repo and checkout version stated in book
> git clone git@github.com:python/cpython
> cd cpython
> git checkout tags/v3.9.0b1 -b v3.9.0b1
Updating files: 100% (4849/4849), done.
Switched to a new branch 'v3.9.0b1'
Check Xcode command line tools installed
> xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" in System Settings to install updates
softwareupdate --history | grep Xcode
Command Line Tools for Xcode 15.1 08/01/2024, 12:51:10
clang --version
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: x86_64-apple-darwin22.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Check Homebrew installed
> brew --version
Homebrew 4.2.17
Install dependencies via homebrew
> brew install openssl xz zlib gdbm sqlite
Warning: openssl@3 3.2.1 is already installed and up-to-date.
Warning: xz 5.4.6 is already installed and up-to-date.
Warning: zlib 1.3.1 is already installed and up-to-date.
Warning: gdbm 1.23 is already installed and up-to-date.
Warning: sqlite 3.45.2 is already installed and up-to-date.
I've truncated the output from config script. See [this gist](https://gist.github.com/bradenmitchell/2d04d2b9e4baf3dd69fd37b44556a8b1) for full output.
6. Check Makefile, etc. created
> make -j2 -s
Objects/fileobject.c:245:9: warning: variable 'newlinetypes' set but not used [-Wunused-but-set-variable]
int newlinetypes = 0;
^
1 warning generated.
Objects/dictobject.c:2235:16: warning: variable 'i' set but not used [-Wunused-but-set-variable]
Py_ssize_t i, j;
^
1 warning generated.
Objects/obmalloc.c:2639:14: warning: variable 'j' set but not used [-Wunused-but-set-variable]
uint j;
^
1 warning generated.
./Modules/getpath.c:942:40: warning: incompatible pointer types passing 'unsigned long *' to parameter of type 'uint32_t *' (aka 'unsigned int *') [-Wincompatible-pointer-types]
if (_NSGetExecutablePath(execpath, &nsexeclength) != 0
^~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach-o/dyld.h:105:54: note: passing argument to parameter 'bufsize' here
extern int _NSGetExecutablePath(char* buf, uint32_t* bufsize) __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_2_0);
^
1 warning generated.
./Modules/posixmodule.c:9403:15: error: call to undeclared function 'sendfile'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
ret = sendfile(in_fd, out_fd, offset, &sbytes, &sf, flags);
^
1 error generated.
make: *** [Modules/posixmodule.o] Error 1
make: *** Waiting for unfinished jobs....
Cannot proceed any further due to the -Wimplicit-function-declaration error.
Followed the instructions in the CPython Internals book explicitly and unable to compile v3.9.0b1. Unable to continue with the book...
Steps & output as follows:
Cloned repo and checkout version stated in book
Check Xcode command line tools installed
Check Homebrew installed
Install dependencies via homebrew
Run config script with homebrew zlib
I've truncated some output, see below
configure: creating ./config.status config.status: creating Makefile.pre config.status: creating Misc/python.pc config.status: creating Misc/python-embed.pc config.status: creating Misc/python-config.sh config.status: creating Modules/ld_so_aix config.status: creating pyconfig.h creating Modules/Setup.local creating Makefile
Compile
Cannot proceed any further due to the
-Wimplicit-function-declaration
error.