Warning while compiling 19beta1
Hi,
fetched newest git head (commit
f0aedc7cb0ed82d4cca48332dc0852c767514558), and compiled it.
When doing so I got:
llvmjit.c: In function ‘llvm_split_symbol_name’:
llvmjit.c:1065:27: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
1065 | *funcname = strrchr(name, '.');
| ^
Generally I wouldn't care, but pg normally compiles without warnings, so this one stuck out :)
My system is Linux/Ubuntu 26.04. Interesting (?) packages:
=$ dpkg -l | awk '$2 ~ /gcc|llvm/'
ii gcc 4:15.2.0-5ubuntu1 amd64 GNU C compiler
ii gcc-15 15.2.0-16ubuntu1 amd64 GNU C compiler
ii gcc-15-base:amd64 15.2.0-16ubuntu1 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-15-x86-64-linux-gnu 15.2.0-16ubuntu1 amd64 GNU C compiler for the x86_64-linux-gnu architecture
ii gcc-16-base:amd64 16-20260322-1ubuntu1 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-x86-64-linux-gnu 4:15.2.0-5ubuntu1 amd64 GNU C compiler for the amd64 architecture
ii lib32gcc-s1 16-20260322-1ubuntu1 amd64 GCC support library (32 bit Version)
ii libgcc-15-dev:amd64 15.2.0-16ubuntu1 amd64 GCC support library (development files)
ii libgcc-s1:amd64 16-20260322-1ubuntu1 amd64 GCC support library
ii libllvm20:amd64 1:20.1.8-2ubuntu8 amd64 Modular compiler and toolchain technologies, runtime library
ii libllvm21:amd64 1:21.1.8-6ubuntu1 amd64 Modular compiler and toolchain technologies, runtime library
ii libuno-cppuhelpergcc3-3t64 4:26.2.3.2-0ubuntu0.26.04.1 amd64 LibreOffice UNO runtime environment -- CPPU helper library
ii libuno-purpenvhelpergcc3-3t64 4:26.2.3.2-0ubuntu0.26.04.1 amd64 LibreOffice UNO runtime environment -- "purpose environment" helper
ii libuno-salhelpergcc3-3t64 4:26.2.3.2-0ubuntu0.26.04.1 amd64 LibreOffice UNO runtime environment -- SAL helpers for C++ library
ii llvm 1:21.1.6-71 amd64 Modular compiler and toolchain technologies
ii llvm-20 1:20.1.8-2ubuntu8 amd64 Modular compiler and toolchain technologies
ii llvm-20-dev 1:20.1.8-2ubuntu8 amd64 Modular compiler and toolchain technologies, libraries and headers
ii llvm-20-linker-tools 1:20.1.8-2ubuntu8 amd64 Modular compiler and toolchain technologies - Plugins
ii llvm-20-runtime 1:20.1.8-2ubuntu8 amd64 Modular compiler and toolchain technologies, IR interpreter
ii llvm-20-tools 1:20.1.8-2ubuntu8 amd64 Modular compiler and toolchain technologies, tools
ii llvm-21 1:21.1.8-6ubuntu1 amd64 Modular compiler and toolchain technologies
ii llvm-21-dev 1:21.1.8-6ubuntu1 amd64 Modular compiler and toolchain technologies, libraries and headers
ii llvm-21-linker-tools 1:21.1.8-6ubuntu1 amd64 Modular compiler and toolchain technologies - Plugins
ii llvm-21-runtime 1:21.1.8-6ubuntu1 amd64 Modular compiler and toolchain technologies, IR interpreter
ii llvm-21-tools 1:21.1.8-6ubuntu1 amd64 Modular compiler and toolchain technologies, tools
ii llvm-dev 1:21.1.6-71 amd64 Modular compiler and toolchain technologies, libraries and headers
ii llvm-runtime:amd64 1:21.1.6-71 amd64 Modular compiler and toolchain technologies, bytecode interpreter
Configure was called:
./configure \
--quiet \
--prefix=/home/pgdba/work \
--enable-debug \
--with-pgport=$use_port \
--with-tcl \
--with-perl \
--with-python \
--enable-integer-datetimes \
--without-pam \
--without-bonjour \
--with-openssl \
--with-uuid=ossp \
--with-readline \
--with-libxml \
--with-systemd \
--with-zlib \
--with-lz4 \
--with-zstd \
--with-llvm \
--enable-debug --enable-depend --enable-cassert
Best regards,
depesz
hubert depesz lubaczewski <depesz@depesz.com> writes:
When doing so I got:
llvmjit.c: In function ‘llvm_split_symbol_name’:
llvmjit.c:1065:27: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
1065 | *funcname = strrchr(name, '.');
| ^
Yeah, some of the buildfarm animals have been showing this for awhile.
I suppose it's from using a bleeding-edge LLVM version, because most
of them don't show it. Which LLVM are you actually compiling against?
regards, tom lane
I wrote:
hubert depesz lubaczewski <depesz@depesz.com> writes:
llvmjit.c: In function ‘llvm_split_symbol_name’:
llvmjit.c:1065:27: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
1065 | *funcname = strrchr(name, '.');
| ^
Yeah, some of the buildfarm animals have been showing this for awhile.
Actually, after looking closer, the LLVM version isn't relevant.
What you need is a gcc new enough to know that the result of
strrchr() applied to a const char * should be considered const.
This function is ugly in some other ways too. Will fix.
regards, tom lane
On Thu, Jun 04, 2026 at 10:43:00AM -0400, Tom Lane wrote:
hubert depesz lubaczewski <depesz@depesz.com> writes:
When doing so I got:
llvmjit.c: In function ‘llvm_split_symbol_name’:
llvmjit.c:1065:27: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
1065 | *funcname = strrchr(name, '.');
| ^Yeah, some of the buildfarm animals have been showing this for awhile.
I suppose it's from using a bleeding-edge LLVM version, because most
of them don't show it. Which LLVM are you actually compiling against?
configure output contained:
checking for llvm-config... /usr/bin/llvm-config
configure: using llvm 21.1.8
Best regards,
depesz