mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
ports: tar and xz
This commit is contained in:
@@ -11,16 +11,13 @@
|
||||
#define VMM_FLAGS_FILE 8
|
||||
#define VMM_FLAGS_EXACT 16
|
||||
#define VMM_FLAGS_SHARED 32
|
||||
#define VMM_FLAGS_COPY 64
|
||||
|
||||
#define VMM_PERMANENT_FLAGS_MASK (VMM_FLAGS_FILE | VMM_FLAGS_SHARED | VMM_FLAGS_COPY)
|
||||
#define VMM_PERMANENT_FLAGS_MASK (VMM_FLAGS_FILE | VMM_FLAGS_SHARED)
|
||||
|
||||
#define VMM_ACTION_READ 1
|
||||
#define VMM_ACTION_WRITE 2
|
||||
#define VMM_ACTION_EXEC 4
|
||||
|
||||
#define VMM_DESTROY_FLAGS_NOSYNC 1
|
||||
|
||||
typedef struct {
|
||||
vnode_t *node;
|
||||
uintmax_t offset;
|
||||
|
||||
+1
-5
@@ -206,7 +206,6 @@ static void insertrange(vmmspace_t *space, vmmrange_t *newrange) {
|
||||
|
||||
static void destroyrange(vmmrange_t *range, uintmax_t _offset, size_t size, int flags) {
|
||||
uintmax_t top = _offset + size;
|
||||
__assert(!(range->flags & VMM_FLAGS_COPY)); // TODO unimplemented
|
||||
|
||||
for (uintmax_t offset = _offset; offset < top; offset += PAGE_SIZE) {
|
||||
void *vaddr = (void *)((uintptr_t)range->start + offset);
|
||||
@@ -218,7 +217,7 @@ static void destroyrange(vmmrange_t *range, uintmax_t _offset, size_t size, int
|
||||
proc_t *proc = thread ? thread->proc : NULL;
|
||||
cred_t *cred = proc ? &proc->cred : NULL;
|
||||
|
||||
if ((range->flags & VMM_FLAGS_FILE) && (range->flags & VMM_FLAGS_SHARED) && (flags & VMM_DESTROY_FLAGS_NOSYNC) == 0) {
|
||||
if ((range->flags & VMM_FLAGS_FILE) && (range->flags & VMM_FLAGS_SHARED)) {
|
||||
__assert(VOP_MUNMAP(range->vnode, vaddr, range->offset + offset, mmuflagstovnodeflags(range->mmuflags) | (range->flags & VMM_FLAGS_SHARED ? V_FFLAGS_SHARED : 0), cred) == 0);
|
||||
} else {
|
||||
pmm_release(physical);
|
||||
@@ -402,8 +401,6 @@ void *vmm_map(void *addr, volatile size_t size, int flags, mmuflags_t mmuflags,
|
||||
range->flags = VMM_PERMANENT_FLAGS_MASK & flags;
|
||||
range->mmuflags = mmuflags;
|
||||
|
||||
// TODO CoW
|
||||
|
||||
if (flags & VMM_FLAGS_FILE) {
|
||||
// XXX make sure that writes can't happen to executable memory mapped files and check file permissions
|
||||
vmmfiledesc_t *desc = private;
|
||||
@@ -526,7 +523,6 @@ void vmm_destroycontext(vmmcontext_t *context) {
|
||||
}
|
||||
|
||||
vmmcontext_t *vmm_fork(vmmcontext_t *oldcontext) {
|
||||
// TODO copy on write
|
||||
vmmcontext_t *newcontext = vmm_newcontext();
|
||||
if (newcontext == NULL)
|
||||
return NULL;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git tar-clean/build-aux/config.sub tar-workdir/build-aux/config.sub
|
||||
index f6ede1d..5b7f3f8 100755
|
||||
--- tar-clean/build-aux/config.sub
|
||||
+++ tar-workdir/build-aux/config.sub
|
||||
@@ -1727,7 +1727,7 @@ case $os in
|
||||
# Now accept the basic system types.
|
||||
# The portable systems comes first.
|
||||
# Each alternative MUST end in a * to match a version number.
|
||||
- gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
|
||||
+ gnu* | android* | astral* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
|
||||
| *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
|
||||
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
|
||||
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
name=tar
|
||||
revision=1
|
||||
from_source=tar
|
||||
imagedeps="base-devel"
|
||||
hostdeps="xgcc xbinutils"
|
||||
deps="mlibc xz"
|
||||
|
||||
configure() {
|
||||
cp -rpf ${source_dir}/* .
|
||||
./configure --host=x86_64-astral --prefix=${prefix}
|
||||
}
|
||||
|
||||
build() {
|
||||
make -j ${parallelism}
|
||||
}
|
||||
|
||||
install() {
|
||||
make install DESTDIR=${dest_dir}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
name=xz
|
||||
revision=1
|
||||
from_source=xz
|
||||
imagedeps="base-devel"
|
||||
hostdeps="xgcc xbinutils"
|
||||
deps="mlibc"
|
||||
|
||||
configure() {
|
||||
${source_dir}/configure --host=x86_64-astral --prefix=${prefix} --disable-static
|
||||
}
|
||||
|
||||
build() {
|
||||
make -j${parallelism}
|
||||
}
|
||||
|
||||
install() {
|
||||
make install DESTDIR="${dest_dir}"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
name=tar
|
||||
version=1.35
|
||||
source_method=tarball
|
||||
tarball_url="https://ftp.gnu.org/gnu/tar/tar-${version}.tar.gz"
|
||||
tarball_sha512=38dca8fbc193859770902c31aa6a6cf7a8fcd28687792b5aa8ba938bf39ce1e25c1b0de05f2a982b7b371eeb13502eb67cd27428ae1ade439bd6771aa9d05271
|
||||
|
||||
regenerate() {
|
||||
true
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
name=xz
|
||||
version=5.4.4
|
||||
source_method=tarball
|
||||
tarball_url="https://tukaani.org/xz/xz-${version}.tar.xz"
|
||||
tarball_sha512=2b233a924b82190ff15e970c5a4a59f1c53a0b39a96bde228c9dfc9b103b4a3e5888f5024da4834e180f6010620ff23caf9f7135a38724eb2c8d01bff7a9a9e1
|
||||
hostdeps="autoconf automake libtool pkgconfig"
|
||||
|
||||
regenerate() {
|
||||
autoreconf -vfi
|
||||
}
|
||||
Reference in New Issue
Block a user