Hello All,

i have platfrom DilOS (http://www.dilow.org <http://www.dilow.org/>)
it is illumos based plarform, but it is not illumos as is.
illumos - it is fork from OpenSolaris.

I have ported and updated DPKG + APT for works better with my platforms.

my changes what i’m using on DilOS you can find at:
https://bitbucket.org/dilos/dilos-dpkg/commits/217a5a7e18af8b28ee21b9d1c0e319fc0e256804
 
<https://bitbucket.org/dilos/dilos-dpkg/commits/217a5a7e18af8b28ee21b9d1c0e319fc0e256804>

branch 'dilos'

let me explain some changes.

right now we have no definition related to 'illumos' and still using 'solaris' 
with 'SunOS'
it is why you can see from changes with '__sun' and 'OS_Solaris'

question is - will it better if i’ll tyr to use : #if defined(DILOS) - and will 
define it by vendor definition to CPPFLAGS += -DDILOS ?

DilOS != illumos - i have more updates on my fork. because illumos community 
have own visions to tools and dislike ideas to have GNU tools in promary place 
- like: grep, sed, find, etc - and prefer to use illumos tools and hack/update 
userland apps for it.

i prefer and i’d like to have/provide platform more friendly yo Debian for 
better ports of Debian userland apps.

I have more modificatinos for it on my env.
i have moved illumos tools to /system/* and using coreutils and others tools 
from PATH : /usr/bin.
GNU coreutils should be updated to work with ACL on illumos based platform, but 
this work in plans later.
also updates with ncurses, gettext and others tools - it helps with to be more 
friendly to builds of userland apps from Debian upstream.

right now i’m using Debian 'stertch' components for ports.

I have couple of questions.

I try to support 2 platforms: Intel + SPARC.
I can’t bulid cross build tools for SPARC builds on Intel because SPARC bulid 
tools depend on Sun AS and have to try to look how to update it to use GNU AS - 
it is in ToDO list.

we are using gcc-6 + GNU AS + illumos LD for intel builds : dilos-illumos + 
userland, and for SPARC userland builds.
but we still stick with gcc-4.4 + Sun AS + illumos LD for sparc dilos-illumos 
builds.

we are using dpkg -R <another root> <flags> *.deb & apt-get -R <another root> 
<flags> <list of packages> - for better compatibility with IPS pkg tools and 
better works with zones (solaris zones virtualization).
Also, it helps with bootstrap of new system - becuase try to use chroot without 
pre-configuration is pain.

I do only 64bit builds/ports, but have some 32bits components for trasition 
period

we are using solaris-i386 for 64bit on Intel and solaris-sparc for 64bit on 
SPARC.

dpkg-architecture on Intel is:

$ dpkg-architecture 
DEB_BUILD_ARCH=solaris-i386
DEB_BUILD_ARCH_ABI=base
DEB_BUILD_ARCH_BITS=64
DEB_BUILD_ARCH_CPU=amd64
DEB_BUILD_ARCH_ENDIAN=little
DEB_BUILD_ARCH_LIBC=sysv
DEB_BUILD_ARCH_OS=solaris
DEB_BUILD_GNU_CPU=x86_64
DEB_BUILD_GNU_SYSTEM=pc-solaris2.11
DEB_BUILD_GNU_TYPE=x86_64-pc-solaris2.11
DEB_BUILD_MULTIARCH=amd64
DEB_HOST_ARCH=solaris-i386
DEB_HOST_ARCH_ABI=base
DEB_HOST_ARCH_BITS=64
DEB_HOST_ARCH_CPU=amd64
DEB_HOST_ARCH_ENDIAN=little
DEB_HOST_ARCH_LIBC=sysv
DEB_HOST_ARCH_OS=solaris
DEB_HOST_GNU_CPU=x86_64
DEB_HOST_GNU_SYSTEM=pc-solaris2.11
DEB_HOST_GNU_TYPE=x86_64-pc-solaris2.11
DEB_HOST_MULTIARCH=amd64
DEB_TARGET_ARCH=solaris-i386
DEB_TARGET_ARCH_ABI=base
DEB_TARGET_ARCH_BITS=64
DEB_TARGET_ARCH_CPU=amd64
DEB_TARGET_ARCH_ENDIAN=little
DEB_TARGET_ARCH_LIBC=sysv
DEB_TARGET_ARCH_OS=solaris
DEB_TARGET_GNU_CPU=x86_64
DEB_TARGET_GNU_SYSTEM=pc-solaris2.11
DEB_TARGET_GNU_TYPE=x86_64-pc-solaris2.11
DEB_TARGET_MULTIARCH=amd64

on SPARC:
$ dpkg-architecture 
DEB_BUILD_ARCH=solaris-sparc
DEB_BUILD_ARCH_ABI=base
DEB_BUILD_ARCH_BITS=64
DEB_BUILD_ARCH_CPU=sparc64
DEB_BUILD_ARCH_ENDIAN=big
DEB_BUILD_ARCH_LIBC=sysv
DEB_BUILD_ARCH_OS=solaris
DEB_BUILD_GNU_CPU=sparcv9
DEB_BUILD_GNU_SYSTEM=sun-solaris2.11
DEB_BUILD_GNU_TYPE=sparcv9-sun-solaris2.11
DEB_BUILD_MULTIARCH=sparcv9
DEB_HOST_ARCH=solaris-sparc
DEB_HOST_ARCH_ABI=base
DEB_HOST_ARCH_BITS=64
DEB_HOST_ARCH_CPU=sparc64
DEB_HOST_ARCH_ENDIAN=big
DEB_HOST_ARCH_LIBC=sysv
DEB_HOST_ARCH_OS=solaris
DEB_HOST_GNU_CPU=sparcv9
DEB_HOST_GNU_SYSTEM=sun-solaris2.11
DEB_HOST_GNU_TYPE=sparcv9-sun-solaris2.11
DEB_HOST_MULTIARCH=sparcv9
DEB_TARGET_ARCH=solaris-sparc
DEB_TARGET_ARCH_ABI=base
DEB_TARGET_ARCH_BITS=64
DEB_TARGET_ARCH_CPU=sparc64
DEB_TARGET_ARCH_ENDIAN=big
DEB_TARGET_ARCH_LIBC=sysv
DEB_TARGET_ARCH_OS=solaris
DEB_TARGET_GNU_CPU=sparcv9
DEB_TARGET_GNU_SYSTEM=sun-solaris2.11
DEB_TARGET_GNU_TYPE=sparcv9-sun-solaris2.11
DEB_TARGET_MULTIARCH=sparcv9

as you can see - for MULTIARCH we are using 'amd64' & 'sparcv9' - because we 
have for 64bits isaexec definitions lile:

SPARC:
$ isainfo -v
64-bit sparcv9 applications
32-bit sparc applications
        v8plus div32 mul32 

intel:
$ isainfo -v
64-bit amd64 applications
        vmx sse4.2 sse4.1 ssse3 popcnt tscp cx16 sse3 sse2 sse fxsr mmx 
        cmov amd_sysc cx8 tsc fpu 
32-bit i386 applications
        vmx sse4.2 sse4.1 ssse3 popcnt tscp ahf cx16 sse3 sse2 sse fxsr mmx 
        cmov sep cx8 tsc fpu 

and as default we have :

$ crle -64

Configuration file [version 4]: /var/ld/64/ld.config  
  Platform:     64-bit LSB AMD64
  Default Library Path (ELF):   /lib/64:/usr/lib/64  (system default)
  Trusted Directories (ELF):    /lib/secure/64:/usr/lib/secure/64  (system 
default)

Command line:
  crle -64 -c /var/ld/64/ld.config

$ crle -64

Configuration file [version 4]: /var/ld/64/ld.config  
  Platform:     64-bit MSB SPARCV9
  Default Library Path (ELF):   /lib/64:/usr/lib/64  (system default)
  Trusted Directories (ELF):    /lib/secure/64:/usr/lib/secure/64  (system 
default)

Command line:
  crle -64 -c /var/ld/64/ld.config

where /lib/64 is link to plarform specific: 'amd64' on intel and 'sparcv9' on 
sparc

it is solaris specific where we can’t indetify correct plarform by 'uname' 
$ uname -a
SunOS bld01 5.11 1.3.7.182 sun4v sparc SUNW,SPARC-Enterprise-T5220

$ uname -a
SunOS z172 5.11 1.3.7.182 i86pc i386 i86pc

and we have to use 'isainfo' tools for 32/64 bits identifucation.

first question: what Debian specific platfrom will be better to use instead of 
solaris-i386 & solaris-sparc ?

DilOS != solaris, DilOS != illumos as is.

can we specify dilos-amd64 & dilos-sparcv9 (or sparc64) as platform definitions 
for DEB_TARGET_ARCH = DEB_BUILD_ARCH ?

also - DEB_TARGET_ARCH_OS = DEB_BUILD_ARCH_OS = dilos ?

about DEB_HOST_GNU_TYPE & DEB_HOST_GNU_SYSTEM - it is open question too , but 
need to work with gcc team & autotools  too.

next question: about BASEDIR definition.

BASEDIR is using with '-R' flag - we setup it as another root where we want 
install packages. some tools like add_drv/rem_drv are using it too.

i have updated dpkg to setup it and use it and it is workign fine couple of 
years.

Pleae let me know your questions/updates - how we can colaborate and how to 
update DilOS better for it :)

best regards,
-Igor

Reply via email to