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)
doc fixes fbea1d2712d6ac940171c305a4365685ae4ea2b3 Sylvain BERTRAND 2023-08-11 15:01:33
glibc is lost cb48e764d36c6e6a17fd3b86057cd9d16372866b Sylvain BERTRAND 2023-08-11 01:43:24
alsa-lib-1.2.9 3ab47daf0697640797409403e89479750e1df3a4 Sylvain BERTRAND 2023-08-09 13:13:44
update that c++ diarrhea. 830386d522bc9cac08202ded04ce501c56712db4 Sylvain BERTRAND 2023-08-08 19:58:39
cleanup 1f706f57277405496cd6432a339259801e9df90b Sylvain BERTRAND 2023-08-08 17:20:05
dwm: move from tag to toggletag 2f5184715c58a00b739857d295d375522f3f2535 Sylvain BERTRAND 2023-08-03 00:35:14
Gfx stack update e25ed24c7d1a9b145de3cad63dcd617c3b9bd6f5 Sylvain BERTRAND 2023-07-29 14:14:06
EDLF64.draft, reentrancy and thread safety f66313fdcb17b2fa8ba3f227bc26bfac94f189ee Sylvain BERTRAND 2023-07-29 14:13:12
clear a bit the EDLF64 draft. 4dd34b7fa5ae978dce295cc4a836e367d25f007d Sylvain BERTRAND 2023-07-25 14:06:13
EDLF64 re-entrancy/fix. 404ecd7028b1031ccbb88300c90674618819c5bd Sylvain BERTRAND 2023-07-18 20:30:58
Gfx stack update 8025b4f7dac102ccc5de280df2105e73a31f1910 Sylvain BERTRAND 2023-07-15 15:04:11
EDLF64: clean munmap of the executable itself 1ed67b684b7c154cbb7eea742cb8eef0c7790dbc Sylvain BERTRAND 2023-07-09 17:37:27
last ffpmeg before breaking nyanmp 36cded2ce51a6df8edfcffc71094695fa8ad871c Sylvain BERTRAND 2023-07-09 15:05:32
Gfx stack update b2050ef1941139d255c61c2c82e24e6de364c5b4 Sylvain BERTRAND 2023-07-08 16:58:03
improve EDLF64 draft 48938c705c4f10e898677ec6e321dfad8d892f3f Sylvain BERTRAND 2023-07-07 18:36:15
elf toolbox and less toxic format draft a2ab4235350f04975de513911b7a340e2eb50ef3 Sylvain BERTRAND 2023-07-07 17:26:40
update of some image pagkages 7d8a5e8a5e20ab58e585a5f9d4270054285dba8c Sylvain BERTRAND 2023-07-05 23:14:01
gcc 12.2 won't build c++ threading all the time. d8560808bd62a198bc446153602c658141238c01 Sylvain BERTRAND 2023-07-02 16:56:10
Gfx stack update 50e5991a466541ebb88456918f6cc0bad7e1bfb8 Sylvain BERTRAND 2023-07-01 13:19:49
refreshing various components 22c025e6a7019283775b45742a8095a26d1d9b51 Sylvain BERTRAND 2023-07-01 00:16:51
Commit fbea1d2712d6ac940171c305a4365685ae4ea2b3 - doc fixes
Author: Sylvain BERTRAND
Author date (UTC): 2023-08-11 15:01
Committer name: Sylvain BERTRAND
Committer date (UTC): 2023-08-11 15:01
Parent(s): cb48e764d36c6e6a17fd3b86057cd9d16372866b
Signer:
Signing key:
Signing status: N
Tree: f2111705d5efbe369a844edd1468fb01c02c5d35
File Lines added Lines deleted
files/EDLF64.draft 9 10
x64/elf/glibc.sh 7 4
File files/EDLF64.draft changed (mode: 100644) (index dcc927f..4e7ced1)
... ... EDLF64_LIBRARY_PATH environment variable to lookup for EDLF64 dynamic libraries:
71 71 ending with a 0x00 byte. Each path from EDLF64_LIBRARY_PATH is prepended to a dynamic library name. ending with a 0x00 byte. Each path from EDLF64_LIBRARY_PATH is prepended to a dynamic library name.
72 72
73 73 We use the char '%' used to escape the path separator ':'. To have a '%' in path, you must double We use the char '%' used to escape the path separator ':'. To have a '%' in path, you must double
74 the %, "%%", and to have a ':' in a path not being interpreted as a separator, use "%:". "::" means
75 an empty path, usually the current working directory at the time of the lookup. Any invalid
74 the '%', "%%", and to have a ':' in a path not being interpreted as a separator, use "%:". "::"
75 means an empty path, usually the current working directory at the time of the lookup. Any invalid
76 76 combination of '%' with a non handled char ('%' or ':') will result in the path being skiped. combination of '%' with a non handled char ('%' or ':') will result in the path being skiped.
77 77 ==================================================================================================== ====================================================================================================
78 Prototype of process_entry function, WARNING, there is no stack, those must be passed in registers.
79 This is, very probably, not a classic ABI function call.
78 Prototype of the process_entry function, WARNING, there is no stack, those must be passed in
79 registers. This is, very probably, not a classic ABI function call.
80 80
81 81 void process_entry( void process_entry(
82 82 void *process_info, /* Virtual address */ void *process_info, /* Virtual address */
 
... ... links were resolved in this pathname). Namely, without mounted /proc, the execut
107 107 private method to lookup for its private dynamic libraries (similar to ELF LD_ORIGIN environment private method to lookup for its private dynamic libraries (similar to ELF LD_ORIGIN environment
108 108 variable). variable).
109 109 ==================================================================================================== ====================================================================================================
110 C prototype of resolve function:
110 C prototype of the resolve function:
111 111
112 112 uint64_t resolve( uint64_t resolve(
113 113 /*INPUT*/ uint64_t *symbol_id, /*INPUT*/ uint64_t *symbol_id,
114 114 /*OUTPUT*/ void **symbol_virtual_address); /*OUTPUT*/ void **symbol_virtual_address);
115 115
116 Only one thread can use the resolve function at a time. Entry must be guarded by the reentrancy
117 lock mechanism.
116 Entry must be guarded by the reentrancy lock mechanism.
118 117
119 118 symbol_id is a 64bits unique value identifying a symbol (similar to kernel syscalls). Like kernel symbol_id is a 64bits unique value identifying a symbol (similar to kernel syscalls). Like kernel
120 119 syscalls, those symbol ids must be _EXTREMELY_ stable in time. syscalls, those symbol ids must be _EXTREMELY_ stable in time.
 
... ... Example C prototype of a basic init function:
140 139
141 140 The process_info here may be a variant from the one provided by the kernel to process_entry. The process_info here may be a variant from the one provided by the kernel to process_entry.
142 141 Pathname is a pointer on the pathname used to load this edlf64 file. If successful, it should return Pathname is a pointer on the pathname used to load this edlf64 file. If successful, it should return
143 0. Do not expect process_info to stay in memory after the call. On x64/x86_64 with the SYSV ABI, if
144 going with more than 6 parameters, just init a transient structure to pass the whole data to work
145 around some ABI kludge.
142 0. Do not expect process_info to stay in memory after the call, neither pathname. On x64/x86_64 with
143 the SYSV ABI, if going with more than 6 parameters, just init a transient structure to pass the
144 whole data to work around some ABI kludge.
146 145
147 146 Alternative C prototype of a basic init function: Alternative C prototype of a basic init function:
148 147 uint64_t init( uint64_t init(
File x64/elf/glibc.sh changed (mode: 100755) (index 2ae81a0..713fba4)
1 1 #!/bin/sh #!/bin/sh
2 2
3 # The glibc is lost. With the help of the ELF design failures, their manic abuse of GNU versioning,
4 # mandating a recent gcc compiler... actually many recent gnu only tools, this is just a text-book
5 # case of planned obsolescence.
3 # The glibc is lost. With the help of the ELF design failures, their manic abuse of gnu symbol
4 # versioning, mandating a recent gcc compiler... actually some recent gnu only tools, this is just a
5 # text-book case of planned obsolescence. There is also the libs still requiring static loading
6 # because of the ELF static TLS flag (not fixed already?). Some glibc objects which are statically
7 # linked into binaries which require specific gnu symbol versions in the shared glibc libs.
6 8
7 9 # In the end, you don't really have more freedom than with msft windows. At least it has the decency # In the end, you don't really have more freedom than with msft windows. At least it has the decency
8 # to cost 0 and nobody should be paid for that work. If anybody is, this is a scam.
10 # to cost 0 and nobody should be paid for that work or even worse, pay for it. If anybody is, this
11 # is a scam.
9 12
10 13 # Downgraded to obsolete/scam and should be replaced. # Downgraded to obsolete/scam and should be replaced.
11 14
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