sylware / nyanlinux (public) (License: AFFERO GPLv3) (since 2019-09-09) (hash sha1)
scripts for a lean, from scratch, amd hardware, linux distro
List of commits:
Subject Hash Author Date (UTC)
libglvnd: partial builder for migration of legacy GFX stack efb24b5205bc80defeb705324874ddd1f4734db9 Sylvain BERTRAND 2023-11-30 20:18:32
llvm removal aad27f5c626b4fd57b8e1471a1b879d0b82a934c Sylvain BERTRAND 2023-11-25 20:15:34
mesa:legacy GL and vulkan update 0d1e3cd93e1cc52ad40e132f11d4deb2f024f59f Sylvain BERTRAND 2023-11-25 18:55:11
libepoxy:move to /usr monoblock runtime 8082baed9cee3f107202afae374aff4fd0d622f9 Sylvain BERTRAND 2023-11-25 17:01:20
drm:update and move to /usr monoblock runtime 2a538844c36f03a88f1523cefc167d8525d099cf Sylvain BERTRAND 2023-11-25 16:05:02
glibc malloc does not return NULL for 0 bytes 5f7f25fa1da3ba5620f0e9301bdd986916fae68e Sylvain BERTRAND 2023-11-24 01:49:13
xbkcomp: fix default xbk data file location fd376f9cfaf0daf4037f9285e04574f14e6f5e04 Sylvain BERTRAND 2023-11-23 16:34:38
xorgproto:update 689b8a6414f1a1f69f728f42b46260c00f52ad03 Sylvain BERTRAND 2023-11-22 17:10:56
xkbcomp:udpate and partial SDK removal dcedd17e907841791c4b6e72d756db3b81356c52 Sylvain BERTRAND 2023-11-22 15:55:19
libxkbfile:update and move to /usr mono block runtime b8db87be577d935e31bea44768df7492fc8da9cf Sylvain BERTRAND 2023-11-22 13:47:55
libxkbcommon:update and move to mono block runtime a899fb5514d8e8eac4aaf778dc07295274f0f849 Sylvain BERTRAND 2023-11-21 22:28:12
libX11: update and move to /usr monoblock runtime 13b86c32bbda705d0ed0a734b3af4707d72fe34c Sylvain BERTRAND 2023-11-21 19:59:40
libXi:update and moving toward mono block runtime 0a692f60e994a1763468d2c8db138c034f0987a4 Sylvain BERTRAND 2023-11-21 17:15:25
Gfx stack update 751aa2ce07092504d3bd18676f44ead151210a7c Sylvain BERTRAND 2023-11-11 17:40:30
If the workstation burns. 08ce09ee0689cfedec5c4ac995e1fcd56daad4bc Sylvain BERTRAND 2023-11-06 16:24:17
Gfx stack update e2824e33b8507278a7eaae9d0140b16309ca71ac Sylvain BERTRAND 2023-11-04 12:29:52
Gfx stack update c663c8a00f5cf9ce6d1cc965f1844ae99f666bba Sylvain BERTRAND 2023-10-28 12:41:32
binutils-tcc:fix last builder 2b14eba033d77d64dd98e8e0f5ffdd9617a63b9a Sylvain BERTRAND 2023-10-26 08:20:40
update:lynx noscript/basic (x)html browser de162261b06539a03bf92175aca85fc94b439348 Sylvain BERTRAND 2023-10-25 11:08:48
toolchains:binutils-tcc:update e5fe0bc72732ac9a3339bf69a29c3fe1aca3d147 Sylvain BERTRAND 2023-10-25 10:42:35
Commit efb24b5205bc80defeb705324874ddd1f4734db9 - libglvnd: partial builder for migration of legacy GFX stack
Allright, that much work for that stinking massive kludge which
is legacy GL? Where is Xwayland glamor replacement? Than vulkan
on dma-buf implementation ? AAA vulkan games are from 2017-2019,
I get hardly any GL-only games anymore. We are in 2023. Time to
move on guys.
Author: Sylvain BERTRAND
Author date (UTC): 2023-11-30 20:18
Committer name: Sylvain BERTRAND
Committer date (UTC): 2023-11-30 20:18
Parent(s): aad27f5c626b4fd57b8e1471a1b879d0b82a934c
Signer:
Signing key:
Signing status: N
Tree: 166ccd7219618955fd991c6e326b2c5ed1760bf7
File Lines added Lines deleted
builders/libglvnd-5d1da692588474bffe6abba294c2faa0163504a3/builder.sh 1 1
builders/libglvnd-5d1da692588474bffe6abba294c2faa0163504a3/contrib/gcc_binutils_glibc_tsd_pure_c_opengl_egl_gl.sh 826 0
builders/libglvnd/builder.sh 46 0
File builders/libglvnd-5d1da692588474bffe6abba294c2faa0163504a3/builder.sh copied from file builders/drm-02a41cf302a69f0cd94aae96ec01d98b9398076e/builder.sh (similarity 51%) (mode: 100644) (index 4514042..f62d693)
1 1 git_commit=${pkg_name##*-} git_commit=${pkg_name##*-}
2 2 slot=$git_commit slot=$git_commit
3 . $nyan_root/builders/drm/builder.sh
3 . $nyan_root/builders/libglvnd/builder.sh
File builders/libglvnd-5d1da692588474bffe6abba294c2faa0163504a3/contrib/gcc_binutils_glibc_tsd_pure_c_opengl_egl_gl.sh added (mode: 100755) (index 0000000..77aa9e5)
1 #!/bin/sh
2
3 #===============================================================================
4 # build dir, src dir and script dir
5 build_dir_pathname=$(readlink -f .)
6 printf "build_dir_pathname=$build_dir_pathname\n"
7
8 if test "x$LIBGLVND_SRC_DIR_PATHNAME" != "x"; then
9 src_dir_pathname=$LIBGLVND_SRC_DIR_PATHNAME
10 else
11 # we are in "contrib" directory
12 src_dir_pathname=$(readlink -f $(dirname $0)/..)
13 fi
14 printf "src_dir_pathname=$src_dir_pathname\n"
15
16 # sdk location
17 sdk_dir_pathname=$(readlink -f $(dirname $0))
18 printf "sdk_dir_pathname=$sdk_dir_pathname\n"
19 #===============================================================================
20
21
22 #===============================================================================
23 # the current configur-able variables may be individually overridden with the
24 # content of $build_dir/local_conf.sh. Look for "unset" in those scripts to find
25 # what you can override to tune the build.
26 if test -f $build_dir_pathname/local_conf.sh; then
27 . $build_dir_pathname/local_conf.sh
28 fi
29 #===============================================================================
30
31
32 #===============================================================================
33 # directory configuration
34 #-------------------------------------------------------------------------------
35 if test "${lib_store_dir_pathname-unset}" = unset; then
36 lib_store_dir_pathname=/usr/store/libglvnd/git/lib
37 fi
38 if test "${lib_store_virtual_dir_pathname-unset}" = unset; then
39 lib_store_virtual_dir_pathname=/usr/store/libglvnd/current/lib
40 fi
41 #-------------------------------------------------------------------------------
42 if test "${runtime_lib_dir_pathname-unset}" = unset; then
43 runtime_lib_dir_pathname=/usr/lib
44 fi
45 #-------------------------------------------------------------------------------
46 # This will be used in shared/public pathnames
47 if test "${sysconf_dir_pathname-unset}" = unset; then
48 sysconf_dir_pathname=/etc
49 fi
50 #-------------------------------------------------------------------------------
51 # This will be used in shared/public pathnames
52 if test "${data_dir_pathname-unset}" = unset; then
53 data_dir_pathname=/usr/share
54 fi
55 #-------------------------------------------------------------------------------
56 #===============================================================================
57
58
59 ################################################################################
60 # toolchain
61 # XXX: we avoid as much as we can that brain fuckage which is the compiler
62 # driver
63 #===============================================================================
64 if test "${cpp-unset}" = unset; then
65 cpp="/opt/toolchains/x64/elf/binutils-gcc/current/bin/x86_64-pc-linux-gnu-gcc
66 -E -nostdinc"
67 fi
68 if test "${cc-unset}" = unset; then
69 cc="/opt/toolchains/x64/elf/binutils-gcc/current/bin/x86_64-pc-linux-gnu-gcc \
70 -O2 -pipe -fPIC -ftls-model=global-dynamic -static-libgcc -fpic \
71 -fvisibility=hidden"
72 fi
73 #-------------------------------------------------------------------------------
74 # compiler internal cpp files. In the case of gcc, they require gcc cpp
75 # preprocessor... jez...
76 if test "${cc_cpp_flags_inc-unset}" = unset; then
77 cc_cpp_flags_inc="\
78 -I/opt/toolchains/x64/elf/binutils-gcc/current/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include \
79 "
80 fi
81 if test "${cc_cpp_flags_defs-unset}" = unset; then
82 # XXX: CURRENT GLDISPATCH.C IMPLICIT INITIALIZATION IS CURRENTLY DONE AT
83 # SHARED LIBRARY LOADING TIME BY THE ELF LOADER WHICH IMPLIES COMPILER SUPPORT.
84 # (AND THE C RUNTIME BEING INITIALIZED).
85 # XXX: IT SHOULD EXIST A "AT FIRST USAGE" MODE, THAT TO RELAX COMPILER
86 # REQUIREMENTS AND SHOULD HAVE FOR SURE AN INITIALIZED C RUNTIME.
87 # 20231130: tinycc has the constructor/destructor attribute, but not cproc/qbe
88 # namely we would have to add an assembler trampoline, or patch the assembly
89 # generated file from qbe (probably the way to go). Did not check simple-cc.
90 # XXX:expect gcc inline assembly *OR* gcc __sync builtin function. Needs
91 # binutils gas assembly files to decouple the code from gcc.
92 cc_cpp_flags_defs="\
93 -DHAVE_TYPEOF \
94 -DUSE_ATTRIBUTE_CONSTRUCTOR \
95 -DHAVE_SYNC_INTRINSICS \
96 "
97 fi
98 #-------------------------------------------------------------------------------
99 # Compiler generic support library. In the case of gcc it is libgcc, for tinycc
100 # it is libtcc1, etc.
101 # We want a full pathname. With gcc, you can discover the pathname with:
102 # "gcc -print-libgcc-file-name"
103 if test "${cc_ld_support_lib-unset}" = unset; then
104 eval cc_ld_support_lib=$($cc -print-libgcc-file-name)
105 fi
106 #-------------------------------------------------------------------------------
107 # Compiler specific start/end files for linking a Shared LIBrary (slib), they
108 # appear after/before the syslib start/end files while linking. Here, as an
109 # example, look at the compiler driver $gcc_src/gcc/config/gnu-user.h (13.2.0)
110 # if you want to understand a bit more in the case of glibc, shared libs do fall
111 # in the "shared" category.
112 # With gcc, their pathname can be discovered with:
113 # "gcc -print-file-name=crtbeginS.o" and "gcc -print-file-name=crtendS.o"
114 if test "${cc_ld_slib_start_files-unset}" = unset; then
115 eval cc_ld_slib_start_files=$($cc -print-file-name=crtbeginS.o)
116 fi
117 if test "${cc_ld_slib_end_files-unset}" = unset; then
118 eval cc_ld_slib_start_files=$($cc -print-file-name=crtendS.o)
119 fi
120 #===============================================================================
121 # if your use another linker, it must be "added".
122 if test "${binutils_ld-unset}" = unset; then
123 binutils_ld=/opt/toolchains/x64/elf/binutils-gcc/current/bin/ld
124 fi
125 #===============================================================================
126 if test "${ar-unset}" = unset; then
127 ar=/opt/toolchains/x64/elf/binutils-gcc/current/bin/ar
128 fi
129 #===============================================================================
130 # toolchain
131 ################################################################################
132
133
134 #===============================================================================
135 # syslib
136 if test "${syslib_cpp_flags_inc-unset}" = unset; then
137 syslib_cpp_flags_inc="\
138 -I/nyan/linux-headers/current/include \
139 -I/nyan/glibc/current/include \
140 "
141 fi
142 if test "${syslib_cpp_flags_defs-unset}" = unset; then
143 syslib_cpp_flags_defs="\
144 -DHAVE_PTHREAD_RWLOCK_T \
145 -DHAVE_RTLD_NOLOAD \
146 "
147 fi
148 #-------------------------------------------------------------------------------
149 if test "${syslib_libc_ld_flags-unset}" = unset; then
150 syslib_libc_ld_flags="-L/nyan/glibc/current/lib -lc"
151 fi
152 #-------------------------------------------------------------------------------
153 if test "${syslib_libdl_ld_flags-unset}" = unset; then
154 syslib_libdl_ld_flags="-L/nyan/glibc/current/lib -ldl"
155 fi
156 #-------------------------------------------------------------------------------
157 if test "${syslib_libm_ld_flags-unset}" = unset; then
158 syslib_libm_ld_flags="-L/nyan/glibc/current/lib -lm"
159 fi
160 #-------------------------------------------------------------------------------
161 # syslib specific start/end files for linking a Shared LIBrary (slib), they
162 # appear before/after the compiler start/end files while linking. Here, as an
163 # example, look at the compiler driver $gcc_src/gcc/config/gnu-user.h (13.2.0)
164 # if you want to understand a bit more in the case of glibc, shared libs do fall
165 # in the "shared" category (there, you can see the object requirement of PIE
166 # static-PIE, etc etc).
167 # GNU toolchain have a circular dependency between the gcc support library,
168 # libgcc, and the glibc itself, namely you have to handle that with your linker
169 # (binutils ld has --{start,end}-group, or YOU USUALLY HAVE TO REPEAT THE
170 # LIBRARY FILES (XXX: DOES NOT WORK WITH OBJECT FILES) ON THE LINK COMMAND LINE
171 # UNTIL YOU BREAK THE CIRCULAR DEPENDENCY.
172 # We want full pathnames.
173 if test "${syslib_ld_slib_start_files-unset}" = unset; then
174 syslib_ld_slib_start_files=/nyan/glibc/current/lib/crti.o
175 fi
176 if test "${syslib_ld_slib_end_files-unset}" = unset; then
177 syslib_ld_slib_end_files=/nyan/glibc/current/lib/crtn.o
178 fi
179 # syslib
180 #===============================================================================
181
182
183 #===============================================================================
184 if test "${xorgproto_inc_dir_pathname-unset}" = unset; then
185 xorgproto_inc_dir_pathname=/nyan/xorgproto/current/include
186 fi
187 #===============================================================================
188
189
190 #===============================================================================
191 if test "${libx11_inc_dir_pathname-unset}" = unset; then
192 libx11_inc_dir_pathname=/nyan/libX11/current/include
193 fi
194 if test "${libx11_lib_dir_pathname-unset}" = unset; then
195 libx11_lib_dir_pathname=/nyan/libX11/current/lib
196 fi
197 #===============================================================================
198
199
200 #===============================================================================
201 # python/perl/ruby/javascript/lua/etc whatever...
202 if test "${python3-unset}" = unset; then
203 python3=/nyan/python3/current/bin/python3
204 fi
205 #===============================================================================
206
207
208 #===============================================================================
209 # libglvnd configuration
210 libglvnd_cpp_flags="\
211 "
212 #===============================================================================
213
214
215 ################################################################################
216 # install_root
217 mkdir -p $build_dir_pathname/install_root$lib_store_dir_pathname
218 mkdir -p $build_dir_pathname/install_root$runtime_lib_dir_pathname
219 # install_root
220 ################################################################################
221
222
223 ################################################################################
224 # generators
225 #-------------------------------------------------------------------------------
226 mkdir -p $build_dir_pathname/src/generate
227 #-------------------------------------------------------------------------------
228 printf "GENERATOR:PYTHON3: $build_dir_pathname/src/generate/glapi_mapi_tmp.h\n"
229 $python3 $src_dir_pathname/src/generate/gen_gldispatch_mapi.py \
230 gldispatch \
231 $src_dir_pathname/src/generate/xml/gl.xml \
232 $src_dir_pathname/src/generate/xml/gl_other.xml \
233 >$build_dir_pathname/src/generate/glapi_mapi_tmp.h &
234 #-------------------------------------------------------------------------------
235 printf "GENERATOR:PYTHON3: $build_dir_pathname/src/generate/g_glapi_mapi_opengl_tmp.h\n"
236 $python3 $src_dir_pathname/src/generate/gen_gldispatch_mapi.py \
237 opengl \
238 $src_dir_pathname/src/generate/xml/gl.xml \
239 $src_dir_pathname/src/generate/xml/gl_other.xml \
240 >$build_dir_pathname/src/generate/g_glapi_mapi_opengl_tmp.h &
241 #-------------------------------------------------------------------------------
242 printf "GENERATOR:PYTHON3: $build_dir_pathname/src/generate/g_glapi_mapi_gl_tmp.h\n"
243 $python3 $src_dir_pathname/src/generate/gen_gldispatch_mapi.py \
244 $src_dir_pathname/src/GL/gl.symbols \
245 $src_dir_pathname/src/generate/xml/gl.xml \
246 $src_dir_pathname/src/generate/xml/gl_other.xml \
247 >$build_dir_pathname/src/generate/g_glapi_mapi_gl_tmp.h &
248 #-------------------------------------------------------------------------------
249 printf "GENERATOR:PYTHON3: $build_dir_pathname/src/generate/g_egldispatchstubs.h\n"
250 $python3 $src_dir_pathname/src/generate/gen_egl_dispatch.py \
251 header \
252 $src_dir_pathname/src/generate/xml/egl.xml \
253 >$build_dir_pathname/src/generate/g_egldispatchstubs.h &
254 #-------------------------------------------------------------------------------
255 printf "GENERATOR:PYTHON3: $build_dir_pathname/src/generate/g_egldispatchstubs.c\n"
256 $python3 $src_dir_pathname/src/generate/gen_egl_dispatch.py \
257 source \
258 $src_dir_pathname/src/generate/xml/egl.xml \
259 >$build_dir_pathname/src/generate/g_egldispatchstubs.c &
260 #-------------------------------------------------------------------------------
261 printf "GENERATOR:PYTHON3: $build_dir_pathname/src/generate/g_libglglxwrapper.c\n"
262 $python3 $src_dir_pathname/src/generate/gen_libgl_glxstubs.py \
263 $src_dir_pathname/src/generate/xml/glx.xml \
264 $src_dir_pathname/src/generate/xml/glx_other.xml \
265 >$build_dir_pathname/src/generate/g_libglglxwrapper.c &
266 #-------------------------------------------------------------------------------
267 printf "GENERATOR:PYTHON3: $build_dir_pathname/src/generate/g_glx_dispatch_stub_list.h\n"
268 $python3 $src_dir_pathname/src/GLX/gen_glx_stubs.py \
269 >$build_dir_pathname/src/generate/g_glx_dispatch_stub_list.h &
270 #-------------------------------------------------------------------------------
271 # generators
272 ################################################################################
273
274 wait
275
276 ################################################################################
277 # util
278 # we fused the build, but should be independently built
279 src_c_subpathnames="\
280 src/util/glvnd_pthread.c \
281 src/util/app_error_check.c \
282 src/util/utils_misc.c \
283 src/util/trace.c \
284 src/util/winsys_dispatch.c \
285 src/util/cJSON.c
286 "
287
288 for src_c_subpathname in $src_c_subpathnames
289 do
290 cpp_filename=$(basename $src_c_subpathname .c).cpp.c
291 subpath=$(dirname $src_c_subpathname)
292
293 mkdir -p $build_dir_pathname/$subpath
294
295 printf "CPP $src_dir_pathname/$src_c_subpathname --> $build_dir_pathname/$subpath/$cpp_filename\n"
296 $cpp -o $build_dir_pathname/$subpath/$cpp_filename $src_dir_pathname/$src_c_subpathname \
297 $syslib_cpp_flags_inc \
298 $cc_cpp_flags_inc \
299 -I$build_dir_pathname/src/util/uthash/include \
300 -I$src_dir_pathname/src/util/uthash/include \
301 -I$build_dir_pathname/src/util/ \
302 -I$src_dir_pathname/src/util/ \
303 -I$build_dir_pathname/include \
304 -I$src_dir_pathname/include \
305 $cc_cpp_flags_defs \
306 $syslib_cpp_flags_defs \
307 $libglvnd_cpp_flags &
308 done
309
310 wait
311
312 for src_c_subpathname in $src_c_subpathnames
313 do
314 o_filename=$(basename $src_c_subpathname .c).o
315 cpp_filename=$(basename $src_c_subpathname .c).cpp.c
316 subpath=$(dirname $src_c_subpathname)
317
318 mkdir -p $build_dir_pathname/$subpath
319
320 printf "CC $build_dir_pathname/$subpath/$cpp_filename --> $build_dir_pathname/$subpath/$o_filename\n"
321 $cc -c -o $build_dir_pathname/$subpath/$o_filename $build_dir_pathname/$subpath/$cpp_filename &
322 done
323 # util
324 ################################################################################
325
326 wait
327
328 ################################################################################
329 # GLdispatch/vnd-glapi
330 mkdir -p $build_dir_pathname/src/GLdispatch/vnd-glapi
331 #==============================================================================
332 # libglapi
333 (
334 src_c_pathnames="\
335 $src_dir_pathname/src/GLdispatch/vnd-glapi/mapi_glapi.c \
336 $src_dir_pathname/src/GLdispatch/vnd-glapi/stub.c \
337 $src_dir_pathname/src/GLdispatch/vnd-glapi/table.c \
338 $src_dir_pathname/src/GLdispatch/vnd-glapi/u_current_tsd.c \
339 $src_dir_pathname/src/GLdispatch/vnd-glapi/entry_pure_c.c \
340 "
341 for src_c_pathname in $src_c_pathnames
342 do
343 cpp_filename=$(basename $src_c_pathname .c).cpp.c
344
345 printf "CPP GLAPI $src_c_pathname --> $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename\n"
346 $cpp -o $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename $src_c_pathname \
347 $syslib_cpp_flags_inc \
348 $cc_cpp_flags_inc \
349 -I$build_dir_pathname/src/util \
350 -I$src_dir_pathname/src/util \
351 -I$build_dir_pathname/include \
352 -I$src_dir_pathname/include \
353 $cc_cpp_flags_defs \
354 $syslib_cpp_flags_defs \
355 $libglvnd_cpp_flags \
356 -DMAPI_ABI_HEADER=\"$build_dir_pathname/src/generate/glapi_mapi_tmp.h\" &
357 done
358
359 wait
360
361 for src_c_pathname in $src_c_pathnames
362 do
363 cpp_filename=$(basename $src_c_pathname .c).cpp.c
364 o_filename=$(basename $src_c_pathname .c).o
365 libglapi_a="$libglapi_a $build_dir_pathname/src/GLdispatch/vnd-glapi/$o_filename"
366
367 printf "CC GLAPI $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename --> $build_dir_pathname/src/GLdispatch/vnd-glapi/$o_filename\n"
368 $cc -c -o $build_dir_pathname/src/GLdispatch/vnd-glapi/$o_filename $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename &
369 done
370
371 wait
372
373 # XXX: you must create an archive in order to get most linkers resolve circular
374 # dependencies between objects in the archive.
375 rm -f $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi.a
376 printf "AR $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi.a $libglapi_a\n"
377 $ar rcs $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi.a $libglapi_a
378 ) &
379 # libglapi
380 #==============================================================================
381 # glapi_{gl,opengl} ({glesv1,glesv2})
382 for api in gl opengl
383 do
384 (
385 src_c_pathnames="\
386 $src_dir_pathname/src/GLdispatch/vnd-glapi/stub.c \
387 $src_dir_pathname/src/GLdispatch/vnd-glapi/entry_pure_c.c \
388 "
389 for src_c_pathname in $src_c_pathnames
390 do
391 cpp_filename=$(basename $src_c_pathname .c).$api.cpp.c
392
393 printf "CPP GLAPI($api) $src_c_pathname --> $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename\n"
394 $cpp -o $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename $src_c_pathname \
395 $syslib_cpp_flags_inc \
396 $cc_cpp_flags_inc \
397 -I$build_dir_pathname/src/util \
398 -I$src_dir_pathname/src/util \
399 -I$build_dir_pathname/include \
400 -I$src_dir_pathname/include \
401 $cc_cpp_flags_defs \
402 $syslib_cpp_flags_defs \
403 $libglvnd_cpp_flags \
404 -DSTATIC_DISPATCH_ONLY \
405 -DMAPI_ABI_HEADER=\"$build_dir_pathname/src/generate/g_glapi_mapi_${api}_tmp.h\"
406 done
407
408 wait
409
410 os=
411 for src_c_pathname in $src_c_pathnames
412 do
413 cpp_filename=$(basename $src_c_pathname .c).$api.cpp.c
414 o_filename=$(basename $src_c_pathname .c).$api.o
415 os="$os $build_dir_pathname/src/GLdispatch/vnd-glapi/$o_filename"
416
417 printf "CC GLAPI($api) $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename --> $build_dir_pathname/src/GLdispatch/vnd-glapi/$o_filename\n"
418 $cc -c -o $build_dir_pathname/src/GLdispatch/vnd-glapi/$o_filename $build_dir_pathname/src/GLdispatch/vnd-glapi/$cpp_filename &
419 done
420 eval glapi_${api}_a=\"$os\"
421 # XXX: you must create an archive in order to get most linkers resolve circular
422 # dependencies between objects in the archive.
423 rm -f $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi_${api}.a
424
425 wait
426
427 eval printf \"AR $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi_${api}.a \$glapi_${api}_a\\n\"
428 eval $ar rcs $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi_${api}.a \$glapi_${api}_a
429 ) &
430 done
431 # glapi_{gl,opengl} ({glesv1,glesv2}
432 #==============================================================================
433 # GLdispatch/vnd-glapi
434 ################################################################################
435
436 wait
437
438 ################################################################################
439 # GLdispatch
440 #-------------------------------------------------------------------------------
441 printf "CPP $src_dir_pathname/src/GLdispatch/GLdispatch.c --> $build_dir_pathname/src/GLdispatch/GLdispatch.cpp.c\n"
442 $cpp -o $build_dir_pathname/src/GLdispatch/GLdispatch.cpp.c $src_dir_pathname/src/GLdispatch/GLdispatch.c \
443 $syslib_cpp_flags_inc \
444 $cc_cpp_flags_inc \
445 -I$build_dir_pathname/src/GLdispatch/vnd-glapi \
446 -I$src_dir_pathname/src/GLdispatch/vnd-glapi \
447 -I$build_dir_pathname/src/util \
448 -I$src_dir_pathname/src/util \
449 -I$build_dir_pathname/include \
450 -I$src_dir_pathname/include \
451 $cc_cpp_flags_defs \
452 $syslib_cpp_flags_defs \
453 $libglvnd_cpp_flags
454
455 printf "CC $build_dir_pathname/src/GLdispatch/GLdispatch.cpp.c --> $build_dir_pathname/src/GLdispatch/GLdispatch.o\n"
456 $cc -c -o $build_dir_pathname/src/GLdispatch/GLdispatch.o $build_dir_pathname/src/GLdispatch/GLdispatch.cpp.c \
457 #-------------------------------------------------------------------------------
458 printf "BINUTILS LD SLIB $build_dir_pathname/install_root$lib_store_dir_pathname/libGLdispatch.so.0.0.0\n"
459 $binutils_ld -o $build_dir_pathname/install_root$lib_store_dir_pathname/libGLdispatch.so.0.0.0 \
460 -soname libGLdispatch.so.0 \
461 --version-script=$src_dir_pathname/src/GLdispatch/export_list_tsd.ver \
462 -shared --no-undefined -s \
463 $syslib_ld_slib_start_files \
464 $cc_ld_slib_start_files \
465 $build_dir_pathname/src/GLdispatch/GLdispatch.o \
466 $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi.a \
467 $build_dir_pathname/src/util/trace.o \
468 $build_dir_pathname/src/util/glvnd_pthread.o \
469 $build_dir_pathname/src/util/app_error_check.o \
470 $build_dir_pathname/src/util/utils_misc.o \
471 $syslib_libdl_ld_flags \
472 $syslib_libc_ld_flags \
473 $cc_ld_slib_end_files \
474 $syslib_ld_slib_end_files &
475 # private
476 ln -sTf $lib_store_virtual_dir_pathname/libGLdispatch.so.0.0.0 $build_dir_pathname/install_root$runtime_lib_dir_pathname/libGLdispatch.so.0
477 # GLdispatch
478 ################################################################################
479
480 wait
481
482 ################################################################################
483 # openGL (without GLX)
484 #-------------------------------------------------------------------------------
485 (
486 mkdir -p $build_dir_pathname/src/OpenGL
487 #-------------------------------------------------------------------------------
488 printf "CPP $src_dir_pathname/src/OpenGL/libopengl.c --> $build_dir_pathname/src/OpenGL/libopengl.cpp.c\n"
489 $cpp -o $build_dir_pathname/src/OpenGL/libopengl.cpp.c $src_dir_pathname/src/OpenGL/libopengl.c \
490 $syslib_cpp_flags_inc \
491 $cc_cpp_flags_inc \
492 -I$build_dir_pathname/src/GLdispatch/vnd-glapi \
493 -I$src_dir_pathname/src/GLdispatch/vnd-glapi \
494 -I$build_dir_pathname/src/GLdispatch \
495 -I$src_dir_pathname/src/GLdispatch \
496 -I$build_dir_pathname/src/util \
497 -I$src_dir_pathname/src/util \
498 -I$build_dir_pathname/include \
499 -I$src_dir_pathname/include \
500 $cc_cpp_flags_defs \
501 $syslib_cpp_flags_defs \
502 $libglvnd_cpp_flags
503
504 printf "CC $build_dir_pathname/src/OpenGL/libopengl.cpp.c --> $build_dir_pathname/src/OpenGL/libopengl.o\n"
505 $cc -c -o $build_dir_pathname/src/OpenGL/libopengl.o $build_dir_pathname/src/OpenGL/libopengl.cpp.c
506 #-------------------------------------------------------------------------------
507 printf "BINUTILS LD SLIB $build_dir_pathname/install_root$lib_store_dir_pathname/libOpenGL.so.0.0.0\n"
508 # FIXME: This is not using a version script, must force inclusion with
509 # --[no-]whole-archive or we could miss some public symbols. There is
510 # $src_dir_pathname/src/OpenGL/ogl.symbols text file to check we have all
511 # symbols.
512 $binutils_ld -o $build_dir_pathname/install_root$lib_store_dir_pathname/libOpenGL.so.0.0.0 \
513 -soname libOpenGL.so.0 \
514 -shared --no-undefined -s \
515 $syslib_ld_slib_start_files \
516 $cc_ld_slib_start_files \
517 --whole-archive \
518 $build_dir_pathname/src/OpenGL/libopengl.o \
519 $build_dir_pathname/src/util/utils_misc.o \
520 $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi_opengl.a \
521 --no-whole-archive \
522 $build_dir_pathname/install_root$lib_store_dir_pathname/libGLdispatch.so.0.0.0 \
523 $syslib_libc_ld_flags \
524 $cc_ld_slib_end_files \
525 $syslib_ld_slib_end_files
526 # libOpenGL is expected to be dynamically loaded
527 ln -sTf $lib_store_virtual_dir_pathname/libOpenGL.so.0.0.0 $build_dir_pathname/install_root$runtime_lib_dir_pathname/libOpenGL.so.0
528 ) &
529 # openGL (without GLX)
530 ################################################################################
531
532
533 ################################################################################
534 # EGL (legacy xorg/xwayland glamor on on drm/gbm platform)
535 #-------------------------------------------------------------------------------
536 (
537 mkdir -p $build_dir_pathname/src/EGL
538 #-------------------------------------------------------------------------------
539 src_c_pathnames="\
540 $src_dir_pathname/src/EGL/egldispatchstubs.c \
541 $build_dir_pathname/src/generate/g_egldispatchstubs.c \
542 "
543
544 for src_c_pathname in $src_c_pathnames
545 do
546 cpp_filename=$(basename $src_c_pathname .c).cpp.c
547
548 printf "CPP $src_c_pathname --> $build_dir_pathname/src/EGL/$cpp_filename\n"
549 $cpp -o $build_dir_pathname/src/EGL/$cpp_filename $src_c_pathname \
550 $syslib_cpp_flags_inc \
551 $cc_cpp_flags_inc \
552 -I$build_dir_pathname/src/EGL \
553 -I$src_dir_pathname/src/EGL \
554 -I$build_dir_pathname/src/generate \
555 -I$src_dir_pathname/src/generate \
556 -I$build_dir_pathname/include \
557 -I$src_dir_pathname/include \
558 $cc_cpp_flags_defs \
559 $syslib_cpp_flags_defs \
560 $libglvnd_cpp_flags &
561 done
562
563 wait
564
565 for src_c_pathname in $src_c_pathnames
566 do
567 cpp_filename=$(basename $src_c_pathname .c).cpp.c
568 o_filename=$(basename $src_c_pathname .c).o
569
570 printf "CC $build_dir_pathname/src/EGL/$cpp_filename --> $build_dir_pathname/src/EGL/$o_filename\n"
571 $cc -c -o $build_dir_pathname/src/EGL/$o_filename $build_dir_pathname/src/EGL/$cpp_filename &
572 done
573 #-------------------------------------------------------------------------------
574 src_c_pathnames="\
575 $src_dir_pathname/src/EGL/libegl.c \
576 $src_dir_pathname/src/EGL/libeglcurrent.c \
577 $src_dir_pathname/src/EGL/libeglmapping.c \
578 $src_dir_pathname/src/EGL/libeglvendor.c \
579 $src_dir_pathname/src/EGL/libeglerror.c \
580 "
581 for src_c_pathname in $src_c_pathnames
582 do
583 cpp_filename=$(basename $src_c_pathname .c).cpp.c
584
585 printf "CPP $src_c_pathname --> $build_dir_pathname/src/EGL/$cpp_filename\n"
586 $cpp -o $build_dir_pathname/src/EGL/$cpp_filename $src_c_pathname \
587 $syslib_cpp_flags_inc \
588 $cc_cpp_flags_inc \
589 -I$build_dir_pathname/src/GLdispatch \
590 -I$src_dir_pathname/src/GLdispatch \
591 -I$build_dir_pathname/src/util/uthash/include \
592 -I$src_dir_pathname/src/util/uthash/include \
593 -I$build_dir_pathname/src/util \
594 -I$src_dir_pathname/src/util \
595 -I$build_dir_pathname/include \
596 -I$src_dir_pathname/include \
597 $cc_cpp_flags_defs \
598 $syslib_cpp_flags_defs \
599 $libglvnd_cpp_flags \
600 -DDEFAULT_EGL_VENDOR_CONFIG_DIRS=\"$sysconf_dir_pathname/glvnd/egl_vendor.d:$data_dir_pathname/glvnd/egl_vendor.d\" &
601 done
602
603 wait
604
605 os=
606 for src_c_pathname in $src_c_pathnames
607 do
608 cpp_filename=$(basename $src_c_pathname .c).cpp.c
609 o_filename=$(basename $src_c_pathname .c).o
610 os="$os $build_dir_pathname/src/EGL/$o_filename"
611
612 printf "CC $build_dir_pathname/src/EGL/$cpp_filename --> $build_dir_pathname/src/EGL/$o_filename\n"
613 $cc -c -o $build_dir_pathname/src/EGL/$o_filename $build_dir_pathname/src/EGL/$cpp_filename &
614 done
615
616 wait
617
618 rm -f $build_dir_pathname/src/EGL/libEGL_static.a
619 printf "AR $build_dir_pathname/src/EGL/libEGL_static.a $os\n"
620 $ar rcs $build_dir_pathname/src/EGL/libEGL_static.a $os
621 #-------------------------------------------------------------------------------
622 printf "BINUTILS LD SLIB $build_dir_pathname/install_root$lib_store_dir_pathname/libEGL.so.1.1.0\n"
623 # FIXME: This is not using a version script, must force inclusion with
624 # --[no-]whole-archive or we could miss some public symbols. There is
625 # $src_dir_pathname/src/EGL/egl.symbols text file to check we have all
626 # symbols.
627 $binutils_ld -o $build_dir_pathname/install_root$lib_store_dir_pathname/libEGL.so.1.1.0 \
628 -soname libEGL.so.1 \
629 -shared --no-undefined -s \
630 -Bsymbolic \
631 $syslib_ld_slib_start_files \
632 $cc_ld_slib_start_files \
633 --whole-archive \
634 $build_dir_pathname/src/EGL/libEGL_static.a \
635 $build_dir_pathname/src/EGL/egldispatchstubs.o \
636 $build_dir_pathname/src/EGL/g_egldispatchstubs.o \
637 --no-whole-archive \
638 $build_dir_pathname/src/util/trace.o \
639 $build_dir_pathname/src/util/utils_misc.o \
640 $build_dir_pathname/src/util/cJSON.o \
641 $build_dir_pathname/src/util/glvnd_pthread.o \
642 $build_dir_pathname/src/util/winsys_dispatch.o \
643 $build_dir_pathname/install_root$lib_store_dir_pathname/libGLdispatch.so.0.0.0 \
644 $syslib_libdl_ld_flags \
645 $syslib_libc_ld_flags \
646 $cc_ld_slib_end_files \
647 $syslib_ld_slib_end_files
648 # It is supposed to be dynamically loaded.
649 ln -sTf $lib_store_virtual_dir_pathname/libEGL.so.1.1.0 $build_dir_pathname/install_root$runtime_lib_dir_pathname/libEGL.so.1
650 ) &
651 # EGL
652 ################################################################################
653
654
655 ################################################################################
656 # GLX
657 # FIXME:requiring libX11 instead of xcb?
658 #-------------------------------------------------------------------------------
659 (
660 mkdir -p $build_dir_pathname/src/GLX
661 #-------------------------------------------------------------------------------
662 src_c_pathnames="\
663 $src_dir_pathname/src/GLX/libglx.c \
664 $src_dir_pathname/src/GLX/libglxmapping.c \
665 $src_dir_pathname/src/GLX/libglxproto.c \
666 $src_dir_pathname/src/GLX/glvnd_genentry.c \
667 "
668 for src_c_pathname in $src_c_pathnames
669 do
670 cpp_filename=$(basename $src_c_pathname .c).cpp.c
671
672 printf "CPP $src_c_pathname --> $build_dir_pathname/src/GLX/$cpp_filename\n"
673 $cpp -o $build_dir_pathname/src/GLX/$cpp_filename $src_c_pathname \
674 $syslib_cpp_flags_inc \
675 $cc_cpp_flags_inc \
676 -I$build_dir_pathname/src/GLdispatch \
677 -I$src_dir_pathname/src/GLdispatch \
678 -I$build_dir_pathname/src/util/uthash/include \
679 -I$src_dir_pathname/src/util/uthash/include \
680 -I$build_dir_pathname/src/util \
681 -I$src_dir_pathname/src/util \
682 -I$build_dir_pathname/include \
683 -I$src_dir_pathname/include \
684 -I$libx11_inc_dir_pathname \
685 -I$xorgproto_inc_dir_pathname \
686 $cc_cpp_flags_defs \
687 $syslib_cpp_flags_defs \
688 $libglvnd_cpp_flags &
689 done
690
691 wait
692
693 os=
694 for src_c_pathname in $src_c_pathnames
695 do
696 cpp_filename=$(basename $src_c_pathname .c).cpp.c
697 o_filename=$(basename $src_c_pathname .c).o
698 os="$os $build_dir_pathname/src/GLX/$o_filename"
699
700 printf "CC $build_dir_pathname/src/GLX/$cpp_filename --> $build_dir_pathname/src/GLX/$o_filename\n"
701 $cc -c -o $build_dir_pathname/src/GLX/$o_filename $build_dir_pathname/src/GLX/$cpp_filename &
702 done
703
704 wait
705
706 rm -f $build_dir_pathname/src/GLX/libglx_static.a
707 printf "AR $build_dir_pathname/src/GLX/libglx_static.a $os\n"
708 $ar rcs $build_dir_pathname/src/GLX/libglx_static.a $os
709 #-------------------------------------------------------------------------------
710 printf "BINUTILS LD SLIB $build_dir_pathname/install_root$lib_store_dir_pathname/libGLX.so.0.0.0\n"
711 # FIXME:This is not using a version script, must force inclusion with
712 # --[no-]whole-archive or we could miss some public symbols. There is
713 # $src_dir_pathname/src/GLX/glx.symbols text file to check we have all
714 # symbols.
715 $binutils_ld -o $build_dir_pathname/install_root$lib_store_dir_pathname/libGLX.so.0.0.0 \
716 -soname libGLX.so.0 \
717 -shared --no-undefined -s \
718 -Bsymbolic \
719 $syslib_ld_slib_start_files \
720 $cc_ld_slib_start_files \
721 --whole-archive \
722 $build_dir_pathname/src/GLX/libglx_static.a \
723 --no-whole-archive \
724 $build_dir_pathname/src/util/winsys_dispatch.o \
725 $build_dir_pathname/src/util/trace.o \
726 $build_dir_pathname/src/util/utils_misc.o \
727 $build_dir_pathname/src/util/app_error_check.o \
728 $build_dir_pathname/src/util/glvnd_pthread.o \
729 $build_dir_pathname/install_root$lib_store_dir_pathname/libGLdispatch.so.0.0.0 \
730 -L$libx11_lib_dir_pathname -lX11 \
731 $syslib_libdl_ld_flags \
732 $syslib_libc_ld_flags \
733 $cc_ld_slib_end_files \
734 $syslib_ld_slib_end_files
735 # TODO:private?
736 ln -sTf $lib_store_virtual_dir_pathname/libGLX.so.0.0.0 $build_dir_pathname/install_root$runtime_lib_dir_pathname/libGLX.so.0
737 ) &
738 # GLX
739 ################################################################################
740
741 wait
742
743 ################################################################################
744 # GL (legacy OpenGL and GLX)
745 # FIXME: using libX11 instead of xcb?
746 #-------------------------------------------------------------------------------
747 (
748 mkdir -p $build_dir_pathname/src/GL
749 #-------------------------------------------------------------------------------
750 src_c_pathnames="\
751 $build_dir_pathname/src/generate/g_libglglxwrapper.c \
752 $src_dir_pathname/src/GL/libgl.c \
753 "
754 for src_c_pathname in $src_c_pathnames
755 do
756 cpp_filename=$(basename $src_c_pathname .c).cpp.c
757
758 printf "CPP $src_c_pathname --> $build_dir_pathname/src/GL/$cpp_filename\n"
759 $cpp -o $build_dir_pathname/src/GL/$cpp_filename $src_c_pathname \
760 $syslib_cpp_flags_inc \
761 $cc_cpp_flags_inc \
762 -I$build_dir_pathname/src/GLX \
763 -I$src_dir_pathname/src/GLX \
764 -I$build_dir_pathname/src/GLdispatch/vnd-glapi \
765 -I$src_dir_pathname/src/GLdispatch/vnd-glapi \
766 -I$build_dir_pathname/src/GLdispatch \
767 -I$src_dir_pathname/src/GLdispatch \
768 -I$build_dir_pathname/src/util \
769 -I$src_dir_pathname/src/util \
770 -I$build_dir_pathname/include \
771 -I$src_dir_pathname/include \
772 -I$libx11_inc_dir_pathname \
773 -I$xorgproto_inc_dir_pathname \
774 $cc_cpp_flags_defs \
775 $syslib_cpp_flags_defs \
776 $libglvnd_cpp_flags &
777 done
778
779 wait
780
781 os=
782 for src_c_pathname in $src_c_pathnames
783 do
784 cpp_filename=$(basename $src_c_pathname .c).cpp.c
785 o_filename=$(basename $src_c_pathname .c).o
786 os="$os $build_dir_pathname/src/GL/$o_filename"
787
788 printf "CC $build_dir_pathname/src/GL/$cpp_filename --> $build_dir_pathname/src/GL/$o_filename\n"
789 $cc -c -o $build_dir_pathname/src/GL/$o_filename $build_dir_pathname/src/GL/$cpp_filename &
790 done
791
792 wait
793
794 rm -f $build_dir_pathname/src/GL/libgl_static.a
795 printf "AR $build_dir_pathname/src/GL/libgl_static.a $os\n"
796 $ar rcs $build_dir_pathname/src/GL/libgl_static.a $os
797 #-------------------------------------------------------------------------------
798 printf "BINUTILS LD SLIB $build_dir_pathname/install_root$lib_store_dir_pathname/libGL.so.1.7.0\n"
799 # FIXME:This is not using a version script, must force inclusion with
800 # --[no-]whole-archive or we could miss some public symbols. There is
801 # $src_dir_pathname/src/GL/gl.symbols text file to check we have all
802 # symbols.
803 $binutils_ld -o $build_dir_pathname/install_root$lib_store_dir_pathname/libGL.so.1.7.0 \
804 -soname libGL.so.1 \
805 -shared --no-undefined -s \
806 -Bsymbolic \
807 $syslib_ld_slib_start_files \
808 $cc_ld_slib_start_files \
809 --whole-archive \
810 $build_dir_pathname/src/GL/libgl_static.a \
811 --no-whole-archive \
812 $build_dir_pathname/src/GLdispatch/vnd-glapi/libglapi_gl.a \
813 $build_dir_pathname/src/util/utils_misc.o \
814 $build_dir_pathname/install_root$lib_store_dir_pathname/libGLdispatch.so.0.0.0 \
815 $build_dir_pathname/install_root$lib_store_dir_pathname/libGLX.so.0.0.0 \
816 -L$libx11_lib_dir_pathname -lX11 \
817 $syslib_libdl_ld_flags \
818 $syslib_libc_ld_flags \
819 $cc_ld_slib_end_files \
820 $syslib_ld_slib_end_files
821 # Should not be use anymore. Only legacy binaries with static loading.
822 ln -sTf $lib_store_virtual_dir_pathname/libGL.so.1.7.0 $build_dir_pathname/install_root$runtime_lib_dir_pathname/libGL.so.1
823 ) &
824 # GL (legacy OpenGL and GLX)
825 ################################################################################
826 wait
File builders/libglvnd/builder.sh added (mode: 100644) (index 0000000..8df35e3)
1 src_name=libglvnd
2 git_url0=https://gitlab.freedesktop.org/glvnd/$src_name
3
4 pkg_dir=/run/pkgs/$src_name
5 src_dir=$src_dir_root/$src_name
6 rm -Rf $pkg_dir
7 mkdir -p /run/pkgs
8 cp -r $src_dir $pkg_dir
9
10 #-------------------------------------------------------------------------------
11
12 cd $pkg_dir
13
14 # copy the canonical lean build scripts
15 cp -r $nyan_root/builders/$pkg_name/contrib .
16
17 if test x$git_commit != x; then
18 git checkout --force $git_commit
19 git reset --hard
20 fi
21
22 #-------------------------------------------------------------------------------
23
24 build_dir=/run/builds/$pkg_name
25 rm -Rf $build_dir
26 mkdir -p $build_dir
27 cd $build_dir
28
29 # create the local configuration file
30 cat >$build_dir/local_conf.sh <<EOF
31 lib_store_dir_pathname=/nyan/$src_name/$slot/lib
32 lib_store_virtual_dir_pathname=/nyan/$src_name/current/lib
33 EOF
34
35 $pkg_dir/contrib/gcc_binutils_glibc_tsd_pure_c_opengl_egl_gl.sh
36
37 #-------------------------------------------------------------------------------
38
39 mkdir -p /usr/lib
40 cp -Pf $build_dir/install_root/usr/lib/* /usr/lib
41
42 rm -Rf /nyan/$src_name/$slot/lib/*
43 mkdir -p /nyan/$src_name/$slot/lib
44 cp -Pf $build_dir/install_root/nyan/$src_name/$slot/lib/* /nyan/$src_name/$slot/lib
45
46 rm -Rf $build_dir $pkg_dir
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main