]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/lynx.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / lynx.h
CommitLineData
4f587cb0 1/* Target independent definitions for LynxOS.
a945c346 2 Copyright (C) 1993-2024 Free Software Foundation, Inc.
4fb420c2 3
2a71dcad 4This file is part of GCC.
4843c185 5
2a71dcad 6GCC is free software; you can redistribute it and/or modify
4843c185 7it under the terms of the GNU General Public License as published by
2f83c7d6 8the Free Software Foundation; either version 3, or (at your option)
4843c185
RS
9any later version.
10
2a71dcad 11GCC is distributed in the hope that it will be useful,
4843c185
RS
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
2f83c7d6
NC
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
4843c185 19
4f587cb0
AN
20/* In this file we set up defaults that can be chosen by
21 <target>/lynx.h files. A target-specific lynx.h file can decide
22 either to define and override these definitions or to use them by
23 ensuring they are undefined at this point. If we were to #undef
24 them here we might accidentally disable some target-specific
25 defines. */
26
27#ifndef EXTRA_OS_LYNX_TARGET_SPECS
28# define EXTRA_OS_LYNX_TARGET_SPECS
29#endif
30
31#ifndef EXTRA_OS_LYNX_SPECS
32# define EXTRA_OS_LYNX_SPECS \
33 { "cpp_os_lynx", CPP_OS_LYNX_SPEC }, \
34 { "lib_os_lynx", LIB_OS_LYNX_SPEC }, \
35 { "link_os_lynx", LINK_OS_LYNX_SPEC }, \
36 { "startfile_os_lynx", STARTFILE_OS_LYNX_SPEC }, \
37 { "endfile_os_lynx", ENDFILE_OS_LYNX_SPEC }, \
38 EXTRA_OS_LYNX_TARGET_SPECS
39#endif
40
41#ifndef SUBTARGET_EXTRA_SPECS
42# define SUBTARGET_EXTRA_SPECS EXTRA_OS_LYNX_SPECS
43#endif
44
45#ifndef CPP_SPEC
46# define CPP_SPEC "%(cpp_cpu) %(cpp_os_lynx)"
47#endif
48
49#ifndef LIB_SPEC
50# define LIB_SPEC "%(lib_os_lynx)"
51#endif
52
53#ifndef LINK_SPEC
54# define LINK_SPEC "%(link_os_lynx)"
55#endif
56
57#ifndef STARTFILE_SPEC
58# define STARTFILE_SPEC "%(startfile_os_lynx)"
59#endif
60
61#ifndef ENDFILE_SPEC
62# define ENDFILE_SPEC "%(endfile_os_lynx)"
63#endif
64
65#ifndef CPP_OS_LYNX_SPEC
66# define CPP_OS_LYNX_SPEC \
67"%{mthreads: \
68 %{mlegacy-threads: \
ab532386 69 %ecannot use mthreads and mlegacy-threads together}} \
4f587cb0
AN
70 %{mthreads: -D_MULTITHREADED} \
71 %{mlegacy-threads: -D_THREADS_POSIX4ad4} \
72 -Asystem=lynx -Asystem=unix -D__Lynx__ -D__unix__"
73#endif
74
75#ifndef LIB_OS_LYNX_SPEC
76# define LIB_OS_LYNX_SPEC \
77"%{mlegacy-threads:-lposix-pre1c} -lm -lc"
78#endif
79
80/* We link static executables for LynxOS by default unless -mshared is
81 used when linking an executable. Along the same line, we link to
82 shared libraries when linking a shared object by default unless
83 -static is used.
84
85 We have to pass in our -L options here otherwise the translated
86 startfile directories (%D) will take priority over this.
87 Furthermore since we have to pass in -L options here we have to
88 make sure that -L options provided by the user take priority over
89 everything we specify. */
90
91#ifndef LINK_OS_LYNX_SPEC
92# define LINK_OS_LYNX_SPEC \
93"%{shared} %{static} \
ab532386 94 %{mshared: %{static: %ecannot use mshared and static together}} \
4f587cb0
AN
95 %{!mshared: %{!shared: %{!static: -static}}} \
96 %{L*} \
97 %{mthreads: \
98 %{mshared: -L/lib/thread/shlib -rpath /lib/thread/shlib} \
99 %{shared: \
100 %{!static: -L/lib/thread/shlib -rpath /lib/thread/shlib} \
101 %{!mshared: -L/lib/thread}} \
102 %{shared: %{static: -L/lib/thread}}} \
103 %{!mthreads: \
104 %{mshared: -L/lib/shlib -rpath /lib/shlib} \
105 %{shared: -L/lib/shlib -rpath /lib/shlib}} \
106 %{mlegacy-threads:-lposix-pre1c} -lm -lc"
107#endif
108
109#ifndef STARTFILE_OS_LYNX_SPEC
110# define STARTFILE_OS_LYNX_SPEC \
111"%{!shared: \
112 %{!mthreads: \
113 %{p:gcrt1.o%s} %{pg:gcrt1.o%s} \
114 %{!p:%{!pg:crt1.o%s}}} \
115 %{mthreads: \
116 %{p:thread/gcrt1.o%s} %{pg:thread/gcrt1.o%s} \
117 %{!p:%{!pg:thread/crt1.o%s }}}}\
118 %{mthreads: thread/crti.o%s} %{!mthreads: crti.o%s} \
119 %{!shared: crtbegin.o%s} \
120 %{shared: crtbeginS.o%s}"
121#endif
122
123#ifndef ENDFILE_OS_LYNX_SPEC
124# define ENDFILE_OS_LYNX_SPEC \
125"%{!shared: crtend.o%s} \
126 %{shared: crtendS.o%s} \
127 %{mthreads: thread/crtn.o%s} %{!mthreads: crtn.o%s}"
128#endif
129
4f587cb0
AN
130/* Define the actual types of some ANSI-mandated types. */
131
132#ifndef SIZE_TYPE
133# define SIZE_TYPE "unsigned int"
134#endif
135
136#ifndef PTRDIFF_TYPE
137# define PTRDIFF_TYPE "int"
138#endif
139
140#ifndef WCHAR_TYPE
141# define WCHAR_TYPE "long int"
142#endif
143
144#ifndef WCHAR_TYPE_SIZE
145# define WCHAR_TYPE_SIZE BITS_PER_WORD
146#endif
147
148/* Define ASM_OUTPUT_ALIGN to use the .balign directive rather that
149 the .align directive with GAS. */
150
151#ifndef ASM_OUTPUT_ALIGN
152# define ASM_OUTPUT_ALIGN(FILE, LOG) \
153 do \
154 { \
155 if ((LOG) != 0) \
156 fprintf ((FILE), "\t.balign %d\n", 1 << (LOG)); \
157 } \
158 while (0)
159#endif
160
4969c0d8
L
161#ifndef TARGET_POSIX_IO
162# define TARGET_POSIX_IO
4f587cb0 163#endif