not define __FreeBSD__ ?

It seems that llvm16 in ports does not define __FreeBSD__.sys/timex.h used it.
Is it because I don't know how to use it? I'm trying to generate the loongarch code.
 
Seems to work for me.

Base version:
Code:
$ echo | clang -dM -E - | grep -i freebsd
#define __FreeBSD__ 15
#define __FreeBSD_cc_version 1500000
#define __VERSION__ "FreeBSD Clang 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)"
llvm16 (16.0.6_6) from packages:
Code:
$ echo | /usr/local/bin/clang16 -dM -E - | grep -i freebsd
#define __FreeBSD__ 15
#define __FreeBSD_cc_version 1500001

How do you check?
 
Seems to work for me.

Base version:
Code:
$ echo | clang -dM -E - | grep -i freebsd
#define __FreeBSD__ 15
#define __FreeBSD_cc_version 1500000
#define __VERSION__ "FreeBSD Clang 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)"
llvm16 (16.0.6_6) from packages:
Code:
$ echo | /usr/local/bin/clang16 -dM -E - | grep -i freebsd
#define __FreeBSD__ 15
#define __FreeBSD_cc_version 1500001

How do you check?
I am using llvm16 to build world for LoongArch.
 
Code:
/usr/local/bin/clang16 -target loongarch64-unknown-freebsd15.0 --sysroot=/tmp/obj/usr/home/ysw/src/freebsd/loongarch.loongarch64/tmp -B/var/empty -ftls-model=initial-exec -O2 -pipe -fno-common -G0 -march=loongarch64 -mabi=lp64d -mhard-float  -g -gz=zlib -MD  -MF.depend.sys_timex.o -MTsys_timex.o -std=gnu99 -Wno-format-zero-length -nobuiltininc -idirafter /usr/local/llvm16/lib/clang/16/include -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs -Wold-style-definition -Wno-pointer-sign -Wdate-time -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter  -Qunused-arguments     -c sys_timex.c -o sys_timex.o
In file included from sys_timex.c:1:
/tmp/obj/usr/home/ysw/src/freebsd/loongarch.loongarch64/tmp/usr/include/sys/timex.h:113:18: error: field has incomplete type 'struct timespec'
        struct timespec time;           /* current time (ns) (ro) */
                        ^
/tmp/obj/usr/home/ysw/src/freebsd/loongarch.loongarch64/tmp/usr/include/sys/timex.h:113:9: note: forward declaration of 'struct timespec'
        struct timespec time;           /* current time (ns) (ro) */
               ^
1 error generated.
*** Error code 1

sys/timex.h:
#ifdef __FreeBSD__
#include <sys/_timespec.h>
#endif /* __FreeBSD__ */
sys/_timespec.h:
struct timespec {
        time_t  tv_sec;         /* seconds */
        long    tv_nsec;        /* and nanoseconds */
};
 
I change 4 files, and it work.
Code:
lib/clang/include/llvm/Config/Targets.def
lib/clang/include/llvm/Config/AsmParsers.def
lib/clang/include/llvm/Config/Disassemblers.def
lib/clang/include/llvm/Config/AsmPrinters.def
 
I change 4 files, and it work.
Code:
lib/clang/include/llvm/Config/Targets.def
lib/clang/include/llvm/Config/AsmParsers.def
lib/clang/include/llvm/Config/Disassemblers.def
lib/clang/include/llvm/Config/AsmPrinters.def
Is there any further progress?
Do you have any other contact information?
hank you
 
Back
Top