Can someone please define "host architecture" for me ?
Can someone please define "host architecture" for me ?
Hello all.
When the woof-CE asks you for your host architecture,
at the beginning of the woof building process:
is it referring to the CPU of your computer?
OR
is it referring to the Puppy you are building the new Pup with?
Practical example:
Let's say that I am trying to build a new Xenial "Pooch" 32-bit
-- from Slim-6, a Puppy of the Slacko breed, 32-bit.
-- However, the computer itself is a 64-bit dual core.
So... what is my real host architecture?
What answer do I give the woof-CE process?
Many thanks in advance.
When the woof-CE asks you for your host architecture,
at the beginning of the woof building process:
is it referring to the CPU of your computer?
OR
is it referring to the Puppy you are building the new Pup with?
Practical example:
Let's say that I am trying to build a new Xenial "Pooch" 32-bit
-- from Slim-6, a Puppy of the Slacko breed, 32-bit.
-- However, the computer itself is a 64-bit dual core.
So... what is my real host architecture?
What answer do I give the woof-CE process?
Many thanks in advance.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Re: Can someone please define "host architecture" for me ?
it makes the greatest sense if its the cpu you intend to run the puppy on.musher0 wrote:is it referring to the CPU of your computer?
OR
is it referring to the Puppy you are building the new Pup with?
iow, 32 or 64bit (i think there are others with support.)
if you select 32 for example, you can run the puppy that it builds on most 32 AND 64 bit machines. if you select 64, you can only run it on 64 bit machines (including 64 bit qemu.) but if youre going to run it "optimized" on your computer-- then yes, the cpu of your computer.
if xenial is 32 bit then possibly youll want to select 32 bit from woof.Practical example:
Let's say that I am trying to build a new Xenial "Pooch" 32-bit
-- from Slim-6, a Puppy of the Slacko breed, 32-bit.
-- However, the computer itself is a 64-bit dual core.
So... what is my real host architecture?
otoh, you may get better results for your computer if you select 64.
i have a devuan setup with a mix of 64 and 32 bit binaries, and a 64bit kernel. thats probably what you would get (a 64 bit kernel) if you ran woof with xenial and selected 64 as the host architecture.
its more than 32/64 obviously-- when i say 32 i mean intel/amd and by 64 i mean amd. (64 bit intel means amd64 these days, intel abandoned its own 64 bit arch as it was a flop.) ive run gnewsense on a mipsel (im told this is short for mips: endian little) though i wouldnt expect puppy to support that.
Please give me an answer I can use? Please, pretty please? I'm just as confused.
I don't want a sermon, I don't want an explanation, I don't want an interpretation.
I want the straight goods.
Please tell me what answer I should type in below as an answer
keeping in mind the technical info that I have provided above.
When I am building a 32-bit Xenial Pup on a 32-bit Slim-slacko-6 running on an old
64-bit double core, what is my host architecture exactly?
Many thanks in advance.
I don't want a sermon, I don't want an explanation, I don't want an interpretation.
I want the straight goods.
Please tell me what answer I should type in below as an answer
keeping in mind the technical info that I have provided above.
When I am building a 32-bit Xenial Pup on a 32-bit Slim-slacko-6 running on an old
64-bit double core, what is my host architecture exactly?
Many thanks in advance.
- Attachments
-
- The-Actual-Question_2016-08-06.JPG
- This is the actual first question asked by the woof process.
- (50.05 KiB) Downloaded 205 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
x86 (choice number 2).
Oh, the internet must be echoing. I didnt see learn2codes response initially. Oh well. Definitely x86 just in case you didnt hear it the first time
echo
echo
echo
echo
echo
.
Oh, the internet must be echoing. I didnt see learn2codes response initially. Oh well. Definitely x86 just in case you didnt hear it the first time
echo
echo
echo
echo
echo
.
Last edited by greengeek on Sun 07 Aug 2016, 04:42, edited 1 time in total.
The full definition is like this:
'build' is the architecture of the machine on which the compiling is done.
'host' is the architecture on which the binary will be run.
'target' is only used when compiling the compiler and linker(binutils) and is the architecture of binaries which will be produced by the program.
Lets say I am running on old mac. I want to produce a compiler which will run on my x86 machine, but produce binary output for an ARM tablet. In this case:
build = PPC
host = X86
target = armeabi
'build' is the architecture of the machine on which the compiling is done.
'host' is the architecture on which the binary will be run.
'target' is only used when compiling the compiler and linker(binutils) and is the architecture of binaries which will be produced by the program.
Lets say I am running on old mac. I want to produce a compiler which will run on my x86 machine, but produce binary output for an ARM tablet. In this case:
build = PPC
host = X86
target = armeabi
In this context where it is assumed that you are building a disk to run on other machines, the "host" is the machine you are currently using to build the disk.
It needs to know because some of the options and included software could be different and need to be searched for as it may be a different version to that immediately available.
The "target" is the machine(s) on which you intend to run the disk.
It needs to know because some of the options and included software could be different and need to be searched for as it may be a different version to that immediately available.
The "target" is the machine(s) on which you intend to run the disk.
"Just think of it as leaving early to avoid the rush" - T Pratchett
Hello Burn_IT.Burn_IT wrote:In this context where it is assumed that you are building a disk to run on other machines, the "host" is the machine you are currently using to build the disk.
It needs to know because some of the options and included software could be different and need to be searched for as it may be a different version to that immediately available.
The "target" is the machine(s) on which you intend to run the disk.
Thanks for your input.
I was confused because the distinction between the distro or OS and the hardware
was not clear in my mind.
The hardware has to be taken into consideration, but no distro is built from the "bare
metal". It's now clear to me that a new distro is built from an existing distro.
BFN.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Ignore my previous answer because I am now totally confused. The woof dialog terminal screenshot you posted suggests that you should choose host=x86_64 because you are running woof on a 64 bit cpu but should choose target=x86 because you intend to run the resulting pup on a 32bit cpu.
Maybe the usage of these terms within the woof dialog is contrary to the normal usage of these terms in the wider industry.
Perhaps the writer of that dialog could offer some clarity.
**Except of course - you are running 32bit code on that 64bit cpu so maybe stick with x86? I dunno.Good luck.
Maybe the usage of these terms within the woof dialog is contrary to the normal usage of these terms in the wider industry.
Perhaps the writer of that dialog could offer some clarity.
**Except of course - you are running 32bit code on that 64bit cpu so maybe stick with x86? I dunno.Good luck.
that would be nice. however i think "host" is the key "industry" word here.greengeek wrote:Maybe the usage of these terms within the woof dialog is contrary to the normal usage of these terms in the wider industry.
Perhaps the writer of that dialog could offer some clarity.
i terms of a vm, the physical machine hosts the vm, and the vm hosts the client os.
so if youre running a 32 bit os on a 32 bit vm on a 64 bit machine:
* the "host" of the vm is 64 bit physical machine and
* the host of the 32bit os is the 32 bit vm
in mushers case the 64-bit machine "hosts" the scripts (now we are stretching the term, though the analogy is intact) and the scripts create a puppy for the arch that will "host" the puppy.
or: host arch is the arch of the machine that will run puppy... not the machine that runs the scripts.
i think this is usually called the "target architecture" but as amigo explained:
he also said:'target' is only used when compiling the compiler and linker(binutils) and is the architecture of binaries which will be produced by the program.
in this case mushers 64bit machine, and:'build' is the architecture of the machine on which the compiling is done.
which is what i was saying.'host' is the architecture on which the binary will be run.
theres probably a reason why "host" and target" arent put together as a single question. if they were, "target" would at least be the better term to use here.
i use a 64-bit machine "hosting" a 32 bit os to remaster a 32 bit .iso, but i could just as easily use:
* a 32 bit machine
* hosting a 64 bit vm (with the vm software compiled for a 32 bit target, or the vm wont run)
* with the vm running a 64 bit os
* to remaster a 32 bit .iso that will run on a 32 bit system
think of "host" as parent and "client" as child. the child of one thing can be the parent of something else.
just to be clear: a 32 bit system cannot (natively) run 64 bit anything... but a 32 bit system definitely CAN run:
* a script to remaster a 64 bit os
* an emulator capable of running a 64 bit os, so long as the emulator is compiled for a 32 bit target (you can run qemu-system-x86_64 on a 32 bit machine)
* a compiler used to "cross-compile" a program for a 64-bit target arch
on top of this, most 64 bit physical machines can run a 32 bit os, or a 64 bit os that can run a mix of 64 and 32 bit applications.
Code: Select all
├── 32bit-machine
│ ├── 32bit-os
│ │ ├── to-cross-compile-for-64bit-os
│ │ │ └── YES!
│ │ └── to-remaster-64bit-iso
│ │ └── YES!
│ ├── 64bit-os
│ │ └── -no-
│ └── 64bit-vm
│ └── 64bit-os
│ ├── to-remaster-32bit-iso
│ │ └── YES!
│ └── YES!
└── 64bit-machine
└── 32bit-os (usually)
└── to-remaster-32bit-iso
└── YES!
"most things are possible, and some require emulation."
Last edited by learnhow2code on Sun 07 Aug 2016, 21:17, edited 1 time in total.
Exactly! Your initial answer was the right one! Your instinct served you well!greengeek wrote:Ignore my previous answer because I am now totally confused. The woof dialog terminal screenshot you posted suggests that you should choose host=x86_64 because you are running woof on a 64 bit cpu but should choose target=x86 because you intend to run the resulting pup on a 32bit cpu.
Maybe the usage of these terms within the woof dialog is contrary to the normal usage of these terms in the wider industry.
Perhaps the writer of that dialog could offer some clarity.
**Except of course - you are running 32bit code on that 64bit cpu so maybe stick with x86? I dunno.Good luck.
No need to apologize.
If your starting distro is a 32-bit and your target distro is a 32-bit, then you hit the number
corrresponding to x86 twice. It's the number of bits in the distro "layers" that you need to
inform the woof-CE of.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
I just removed that 'hostarch' question in ./merge2out in the 'rationalise' branch. Really it should never have been asked in the first place!
See commit: https://github.com/puppylinux-woof-CE/w ... df60b6acab
See commit: https://github.com/puppylinux-woof-CE/w ... df60b6acab
Puppy Linux Blog - contact me for access