On Sun, Jun 29, 2025 at 07:06:57PM -0700, Steve Kargl wrote:
> On Sun, Jun 29, 2025 at 06:54:53PM -0700, Steve Kargl wrote:
> >
> > /usr/local/bin/ld: cannot find -lcaf_shmem: No such file or directory
> > collect2: error: ld returned 1 exit status
> > compiler exited with status 1
> >
> > The freshly built gfortran cannot find the libcaf_shmem.a.
> >
>
> % find . -name \*libcaf\* | wc -l
> 0
> % pwd
> /home/kargl/gcc/obj
>
> % find . -name \*shmem\*
> ./x86_64-unknown-freebsd15.0/libgfortran/caf/.deps/shmem.Plo
> ./x86_64-unknown-freebsd15.0/libgfortran/caf/shmem
> ./x86_64-unknown-freebsd15.0/libgfortran/caf/.libs/shmem.o
> ./x86_64-unknown-freebsd15.0/libgfortran/caf/shmem.o
> ./x86_64-unknown-freebsd15.0/libgfortran/caf/shmem.lo
>
I'm slowly solving the mystery.
% gmake -j15 bootstrap | tee sgk.log
% more sgk.log
...
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: /home/kargl/gcc/obj/./gcc/xgcc -B/home/kargl/gcc/obj/./gcc/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/bin/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/lib/ -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/include -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/sys-include -fchecking=1
-DHAVE_CONFIG_H -I. -I../../../gcc/libgfortran
-iquote../../../gcc/libgfortran/io -I../../../gcc/libgfortran/../gcc
-I../../../gcc/libgfortran/../gcc/config
-I../../../gcc/libgfortran/../libquadmath -I../.././gcc
-I../../../gcc/libgfortran/../libgcc -I../libgcc
-I../../../gcc/libgfortran/../libbacktrace -I../libbacktrace -I../libbacktrace
-std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings
-Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules
-ffunction-sections -fdata-sections -O -g -MT caf/shmem/allocator.lo -MD -MP
-MF caf/shmem/.deps/allocator.Tpo -c
../../../gcc/libgfortran/caf/shmem/allocator.c -fPIC -DPIC -o
caf/shmem/.libs/allocator.o
libtool: compile: /home/kargl/gcc/obj/./gcc/xgcc -B/home/kargl/gcc/obj/./gcc/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/bin/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/lib/ -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/include -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/sys-include -fchecking=1
-DHAVE_CONFIG_H -I. -I../../../gcc/libgfortran
-iquote../../../gcc/libgfortran/io -I../../../gcc/libgfortran/../gcc
-I../../../gcc/libgfortran/../gcc/config
-I../../../gcc/libgfortran/../libquadmath -I../.././gcc
-I../../../gcc/libgfortran/../libgcc -I../libgcc
-I../../../gcc/libgfortran/../libbacktrace -I../libbacktrace -I../libbacktrace
-std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings
-Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules
-ffunction-sections -fdata-sections -O -g -MT
caf/shmem/collective_subroutine.lo -MD -MP -MF
caf/shmem/.deps/collective_subroutine.Tpo -c
../../../gcc/libgfortran/caf/shmem/collective_subroutine.c -fPIC -DPIC -o
caf/shmem/.libs/collective_subroutine.o
libtool: compile: /home/kargl/gcc/obj/./gcc/xgcc -B/home/kargl/gcc/obj/./gcc/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/bin/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/lib/ -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/include -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/sys-include -fchecking=1
-DHAVE_CONFIG_H -I. -I../../../gcc/libgfortran
-iquote../../../gcc/libgfortran/io -I../../../gcc/libgfortran/../gcc
-I../../../gcc/libgfortran/../gcc/config
-I../../../gcc/libgfortran/../libquadmath -I../.././gcc
-I../../../gcc/libgfortran/../libgcc -I../libgcc
-I../../../gcc/libgfortran/../libbacktrace -I../libbacktrace -I../libbacktrace
-std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings
-Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules
-ffunction-sections -fdata-sections -O -g -MT caf/shmem/counter_barrier.lo -MD
-MP -MF caf/shmem/.deps/counter_barrier.Tpo -c
../../../gcc/libgfortran/caf/shmem/counter_barrier.c -fPIC -DPIC -o
caf/shmem/.libs/counter_barrier.o
libtool: compile: /home/kargl/gcc/obj/./gcc/xgcc -B/home/kargl/gcc/obj/./gcc/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/bin/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/lib/ -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/include -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/sys-include -fchecking=1
-DHAVE_CONFIG_H -I. -I../../../gcc/libgfortran
-iquote../../../gcc/libgfortran/io -I../../../gcc/libgfortran/../gcc
-I../../../gcc/libgfortran/../gcc/config
-I../../../gcc/libgfortran/../libquadmath -I../.././gcc
-I../../../gcc/libgfortran/../libgcc -I../libgcc
-I../../../gcc/libgfortran/../libbacktrace -I../libbacktrace -I../libbacktrace
-std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings
-Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules
-ffunction-sections -fdata-sections -O -g -MT caf/shmem/hashmap.lo -MD -MP -MF
caf/shmem/.deps/hashmap.Tpo -c ../../../gcc/libgfortran/caf/shmem/hashmap.c
-fPIC -DPIC -o caf/shmem/.libs/hashmap.o
In file included from ../../../gcc/libgfortran/caf/shmem/allocator.h:31,
from ../../../gcc/libgfortran/caf/shmem/alloc.h:28,
from ../../../gcc/libgfortran/caf/shmem/alloc.c:29:
../../../gcc/libgfortran/caf/shmem/shared_memory.h:88:29: error: unknown type
name 'pid_t'
88 | void shared_memory_set_env (pid_t pid);
| ^~~~~
libtool: compile: /home/kargl/gcc/obj/./gcc/xgcc -B/home/kargl/gcc/obj/./gcc/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/bin/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/lib/ -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/include -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/sys-include -fchecking=1
-DHAVE_CONFIG_H -I. -I../../../gcc/libgfortran
-iquote../../../gcc/libgfortran/io -I../../../gcc/libgfortran/../gcc
-I../../../gcc/libgfortran/../gcc/config
-I../../../gcc/libgfortran/../libquadmath -I../.././gcc
-I../../../gcc/libgfortran/../libgcc -I../libgcc
-I../../../gcc/libgfortran/../libbacktrace -I../libbacktrace -I../libbacktrace
-std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings
-Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules
-ffunction-sections -fdata-sections -O -g -MT caf/shmem/shared_memory.lo -MD
-MP -MF caf/shmem/.deps/shared_memory.Tpo -c
../../../gcc/libgfortran/caf/shmem/shared_memory.c -fPIC -DPIC -o
caf/shmem/.libs/shared_memory.o
../../../gcc/libgfortran/caf/shmem/allocator.h:40:3: error: unknown type name
'pthread_mutex_t'
40 | pthread_mutex_t lock;
| ^~~~~~~~~~~~~~~
libtool: compile: /home/kargl/gcc/obj/./gcc/xgcc -B/home/kargl/gcc/obj/./gcc/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/bin/
-B/home/kargl/work/x/x86_64-unknown-freebsd15.0/lib/ -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/include -isystem
/home/kargl/work/x/x86_64-unknown-freebsd15.0/sys-include -fchecking=1
-DHAVE_CONFIG_H -I. -I../../../gcc/libgfortran
-iquote../../../gcc/libgfortran/io -I../../../gcc/libgfortran/../gcc
-I../../../gcc/libgfortran/../gcc/config
-I../../../gcc/libgfortran/../libquadmath -I../.././gcc
-I../../../gcc/libgfortran/../libgcc -I../libgcc
-I../../../gcc/libgfortran/../libbacktrace -I../libbacktrace -I../libbacktrace
-std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings
-Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules
-ffunction-sections -fdata-sections -O -g -MT caf/shmem/supervisor.lo -MD -MP
-MF caf/shmem/.deps/supervisor.Tpo -c
../../../gcc/libgfortran/caf/shmem/supervisor.c -fPIC -DPIC -o
caf/shmem/.libs/supervisor.o
In file included from ../../../gcc/libgfortran/caf/shmem/alloc.h:29:
../../../gcc/libgfortran/caf/shmem/hashmap.h:55:3: error: unknown type name
'ssize_t'; did you mean 'rsize_t'?
55 | ssize_t res_offset;
| ^~~~~~~
| rsize_t
In file included from ../../../gcc/libgfortran/caf/shmem/allocator.h:31,
from ../../../gcc/libgfortran/caf/shmem/alloc.h:28,
from
../../../gcc/libgfortran/caf/shmem/collective_subroutine.h:28,
from
../../../gcc/libgfortran/caf/shmem/collective_subroutine.c:25:
../../../gcc/libgfortran/caf/shmem/shared_memory.h:88:29: error: unknown type
name 'pid_t'
88 | void shared_memory_set_env (pid_t pid);
| ^~~~~
../../../gcc/libgfortran/caf/shmem/allocator.h:40:3: error: unknown type name
'pthread_mutex_t'
40 | pthread_mutex_t lock;
| ^~~~~~~~~~~~~~~
In file included from ../../../gcc/libgfortran/caf/shmem/alloc.h:29:
../../../gcc/libgfortran/caf/shmem/hashmap.h:55:3: error: unknown type name
'ssize_t'; did you mean 'rsize_t'?
55 | ssize_t res_offset;
| ^~~~~~~
| rsize_t
There seem to be numerous linuxism in the code. pid_t
and ssize_t are in /usr/include/unistd.h. pthread_mutex_t
is in /usr/include/pthread.h. A quick glance at allocator.h
that pthread_mutex_t is available through header file pollution.
--
Steve