Re: ld error (undefined symbol) while compiling sqlite3

2022-11-26 Thread Archimedes Gaviola
On Sat, Nov 26, 2022 at 11:53 PM Yuri  wrote:

> Archimedes Gaviola wrote:
> > Hi,
> >
> > For some reason, I am compiling sqlite3 from the
> > /usr/src/contrib/sqlite3 source using
> > FreeBSD-14.0-CURRENT-arm64-aarch64-RPI-20221027-769b884e2e2-258837. I
> > created a /usr/src/usr.bin/sqlite3 directory and created a Makefile file
> > with content referred to the source.
> >
> > root@generic:/usr/src/usr.bin/sqlite3 # ls -la
> > total 16
> > drwxr-xr-x2 root  wheel   512 Nov 26 12:46 .
> > drwxr-xr-x  279 root  wheel  5120 Nov 26 12:46 ..
> > -rw-r--r--1 root  wheel   295 Nov 26 16:50 Makefile
> >
> > root@generic:/usr/src/usr.bin/sqlite3 # cat Makefile
> > # $FreeBSD$
> >
> > .include 
> >
> > SQLITE= ${SRCTOP}/contrib/sqlite3
> > .PATH:  ${SQLITE}
> >
> > PROG= sqlite3
> > MK_MAN=no
> > SRCS= sqlite3.c
>
> SRCS= shell.c sqlite3.c
>
> > INCS= shell.c sqlite3.h
>
> Remove?
>
> >
> > WARNS?= 3
>
> WARNS?= 2 worked for me.
>

Awesome! It works now. Thanks a lot for figuring-out Yuri!


>
> > CFLAGS+=-I${SQLITE} \
> > -DSQLITE_THREADSAFE=0 \
> > -DSQLITE_OMIT_LOAD_EXTENSION
> >
> > .include 
> >
> > With 'make' command invoked, I encountered this error -> ld: error:
> > undefined symbol: main as referenced to the crt1_c.c:72
> > (/usr/src/lib/csu/aarch64/crt1_c.c:72) file. See below details for the
> > actual error.
> >
> > root@generic:/usr/src/usr.bin/sqlite3 # make
> > cc  -O2 -pipe -fno-common -I/usr/src/contrib/sqlite3
>  -DSQLITE_THREADSAFE=1
> >  -DSQLITE_OMIT_LOAD_EXTENSION   -fPIE -g -gz=zlib -MD
>  -MF.depend.sqlite3.o
> > -MTsqlite3.o -std=gnu99 -Wno-format-zero-length -fstack-protector-strong
> > -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter
> > -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
> -Wno-uninitialized
> > -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int
> > -Wno-unused-const-variable -Wno-error=unused-but-set-variable
> > -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality
> > -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef
> > -Wno-address-of-packed-member  -Qunused-arguments-c
> > /usr/src/contrib/sqlite3/sqlite3.c -o sqlite3.o
> > cc -O2 -pipe -fno-common -I/usr/src/contrib/sqlite3 -DSQLITE_THREADSAFE=1
> > -DSQLITE_OMIT_LOAD_EXTENSION -fPIE -g -gz=zlib -std=gnu99
> > -Wno-format-zero-length -fstack-protector-strong -Wsystem-headers -Werror
> > -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
> > -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign
> > -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable
> > -Wno-error=unused-but-set-variable -Wno-tautological-compare
> > -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function
> > -Wno-enum-conversion -Wno-unused-local-typedef
> > -Wno-address-of-packed-member -Qunused-arguments  -Wl,-zrelro -pie   -o
> > sqlite3.full sqlite3.o  -L/usr/obj/usr/src/arm64.aarch64/lib/libthr
> > -lpthread
> > ld: error: undefined symbol: main
>  referenced by crt1_c.c:72 (/usr/src/lib/csu/aarch64/crt1_c.c:72)
>    /usr/lib/Scrt1.o:(__start)
> > cc: error: linker command failed with exit code 1 (use -v to see
> invocation)
> > *** Error code 1
> >
> > Stop.
> > make: stopped in /usr/src/usr.bin/sqlite3
> >
> > Not sure if I missed something or if something goes wrong with my
> Makefile
> > content construction. I basically followed here
> > https://www.sqlite.org/howtocompile.html
> >  and then proved the source to
> > compile successfully.
> >
> > root@generic:/usr/src/contrib/sqlite3 # pwd
> > /usr/src/contrib/sqlite3
> > root@generic:/usr/src/contrib/sqlite3 # ls -lah
> > total 11364
> > drwxr-xr-x   3 root  wheel   1.0K Oct 27 08:06 .
> > drwxr-xr-x  89 root  wheel   2.0K Nov 26 13:01 ..
> > -rw-r--r--   1 root  wheel15K Oct 27 08:06 INSTALL
> > -rw-r--r--   1 root  wheel   729B Oct 27 08:06 Makefile.am
> > -rw-r--r--   1 root  wheel   547B Oct 27 08:06 Makefile.fallback
> > -rw-r--r--   1 root  wheel37K Oct 27 08:06 Makefile.in
> > -rw-r--r--   1 root  wheel28K Oct 27 08:06 Makefile.msc
> > -rw-r--r--   1 root  wheel   3.5K Oct 27 08:06 README.txt
> > -rw-r--r--   1 root  wheel   7.1K Oct 27 08:06 Replace.cs
> > -rw-r--r--   1 root  wheel   365K Oct 27 08:06 aclocal.m4
> > -rwxr-xr-x   1 root  wheel   7.2K Oct 27 08:06 compile
> > -rwxr-xr-x   1 root  wheel48K Oct 27 08:06 config.guess
> > -rwxr-xr-x   1 root  wheel35K Oct 27 08:06 config.sub
> > -rwxr-xr-x   1 root  wheel   485K Oct 27 08:06 configure
> > -rw-r--r--   1 root  wheel   8.5K Oct 27 08:06 configure.ac
> > 
> > -rwxr-xr-x   1 root  wheel23K Oct 27 08:06 depcomp
> > -rwxr-xr-x   1 root  wheel15K Oct 27 08:06 install-sh
> > -rwxr-xr-x   1 root  wheel   320K Oct 27 08:06 ltmain.sh
> > -rwxr-xr-x   1 root  wheel   6.7K Oct 27 08:06 missing
> > -rw-r--r--   1 root  wheel   717K Oct 27 08:06 

Re: ld error (undefined symbol) while compiling sqlite3

2022-11-26 Thread Yuri
Archimedes Gaviola wrote:
> Hi,
> 
> For some reason, I am compiling sqlite3 from the
> /usr/src/contrib/sqlite3 source using
> FreeBSD-14.0-CURRENT-arm64-aarch64-RPI-20221027-769b884e2e2-258837. I
> created a /usr/src/usr.bin/sqlite3 directory and created a Makefile file
> with content referred to the source.
> 
> root@generic:/usr/src/usr.bin/sqlite3 # ls -la
> total 16
> drwxr-xr-x    2 root  wheel   512 Nov 26 12:46 .
> drwxr-xr-x  279 root  wheel  5120 Nov 26 12:46 ..
> -rw-r--r--    1 root  wheel   295 Nov 26 16:50 Makefile
> 
> root@generic:/usr/src/usr.bin/sqlite3 # cat Makefile
> # $FreeBSD$
> 
> .include 
> 
> SQLITE= ${SRCTOP}/contrib/sqlite3
> .PATH:  ${SQLITE}
> 
> PROG= sqlite3
> MK_MAN=no
> SRCS= sqlite3.c

SRCS= shell.c sqlite3.c

> INCS= shell.c sqlite3.h

Remove?

> 
> WARNS?= 3

WARNS?= 2 worked for me.

> CFLAGS+=        -I${SQLITE} \
>                 -DSQLITE_THREADSAFE=0 \
>                 -DSQLITE_OMIT_LOAD_EXTENSION
> 
> .include 
> 
> With 'make' command invoked, I encountered this error -> ld: error:
> undefined symbol: main as referenced to the crt1_c.c:72
> (/usr/src/lib/csu/aarch64/crt1_c.c:72) file. See below details for the
> actual error.
> 
> root@generic:/usr/src/usr.bin/sqlite3 # make
> cc  -O2 -pipe -fno-common -I/usr/src/contrib/sqlite3  -DSQLITE_THREADSAFE=1
>  -DSQLITE_OMIT_LOAD_EXTENSION   -fPIE -g -gz=zlib -MD  -MF.depend.sqlite3.o
> -MTsqlite3.o -std=gnu99 -Wno-format-zero-length -fstack-protector-strong
> -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter
> -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized
> -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int
> -Wno-unused-const-variable -Wno-error=unused-but-set-variable
> -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality
> -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef
> -Wno-address-of-packed-member  -Qunused-arguments    -c
> /usr/src/contrib/sqlite3/sqlite3.c -o sqlite3.o
> cc -O2 -pipe -fno-common -I/usr/src/contrib/sqlite3 -DSQLITE_THREADSAFE=1
> -DSQLITE_OMIT_LOAD_EXTENSION -fPIE -g -gz=zlib -std=gnu99
> -Wno-format-zero-length -fstack-protector-strong -Wsystem-headers -Werror
> -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
> -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign
> -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable
> -Wno-error=unused-but-set-variable -Wno-tautological-compare
> -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function
> -Wno-enum-conversion -Wno-unused-local-typedef
> -Wno-address-of-packed-member -Qunused-arguments  -Wl,-zrelro -pie   -o
> sqlite3.full sqlite3.o  -L/usr/obj/usr/src/arm64.aarch64/lib/libthr
> -lpthread
> ld: error: undefined symbol: main
 referenced by crt1_c.c:72 (/usr/src/lib/csu/aarch64/crt1_c.c:72)
               /usr/lib/Scrt1.o:(__start)
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/src/usr.bin/sqlite3
> 
> Not sure if I missed something or if something goes wrong with my Makefile
> content construction. I basically followed here
> https://www.sqlite.org/howtocompile.html
>  and then proved the source to
> compile successfully.
> 
> root@generic:/usr/src/contrib/sqlite3 # pwd
> /usr/src/contrib/sqlite3
> root@generic:/usr/src/contrib/sqlite3 # ls -lah
> total 11364
> drwxr-xr-x   3 root  wheel   1.0K Oct 27 08:06 .
> drwxr-xr-x  89 root  wheel   2.0K Nov 26 13:01 ..
> -rw-r--r--   1 root  wheel    15K Oct 27 08:06 INSTALL
> -rw-r--r--   1 root  wheel   729B Oct 27 08:06 Makefile.am
> -rw-r--r--   1 root  wheel   547B Oct 27 08:06 Makefile.fallback
> -rw-r--r--   1 root  wheel    37K Oct 27 08:06 Makefile.in
> -rw-r--r--   1 root  wheel    28K Oct 27 08:06 Makefile.msc
> -rw-r--r--   1 root  wheel   3.5K Oct 27 08:06 README.txt
> -rw-r--r--   1 root  wheel   7.1K Oct 27 08:06 Replace.cs
> -rw-r--r--   1 root  wheel   365K Oct 27 08:06 aclocal.m4
> -rwxr-xr-x   1 root  wheel   7.2K Oct 27 08:06 compile
> -rwxr-xr-x   1 root  wheel    48K Oct 27 08:06 config.guess
> -rwxr-xr-x   1 root  wheel    35K Oct 27 08:06 config.sub
> -rwxr-xr-x   1 root  wheel   485K Oct 27 08:06 configure
> -rw-r--r--   1 root  wheel   8.5K Oct 27 08:06 configure.ac
> 
> -rwxr-xr-x   1 root  wheel    23K Oct 27 08:06 depcomp
> -rwxr-xr-x   1 root  wheel    15K Oct 27 08:06 install-sh
> -rwxr-xr-x   1 root  wheel   320K Oct 27 08:06 ltmain.sh
> -rwxr-xr-x   1 root  wheel   6.7K Oct 27 08:06 missing
> -rw-r--r--   1 root  wheel   717K Oct 27 08:06 shell.c
> -rw-r--r--   1 root  wheel   8.7K Oct 27 08:06 sqlite3.1
> -rw-r--r--   1 root  wheel   8.2M Oct 27 08:06 sqlite3.c
> -rw-r--r--   1 root  wheel   599K Oct 27 08:06 sqlite3.h
> -rw-r--r--   1 root  wheel   267B Oct 27 08:06 sqlite3.pc.in
> 
> -rw-r--r--   1 root  wheel   1.9K Oct 27 08:06