Bug 2459

Summary: reword core-image-sato-dev - should not include native tool chain
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Wolfgang Denk <wd>
Component: coreAssignee: Scott Rifenbark <srifenbark>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: dvhart, meta.mr.watcher, meta.watcher, sgw
Version: unspecified   
Target Milestone: 1.3   
Hardware: All   
OS: Multiple   
URL: http://git.yoctoproject.org/cgit.cgi/yocto-docs/commit/?id=bd2c0db27d7eb038931550a96752f961ea6b1d9c
Whiteboard: 21 May 2012: Fixed/Resolved
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Wolfgang Denk 2012-05-15 09:12:03 UTC
OE Build Configuration:
BB_VERSION        = "1.15.1"
TARGET_ARCH       = "arm"
TARGET_OS         = "linux-gnueabi"
MACHINE           = "beagleboard"
DISTRO            = "poky"
DISTRO_VERSION    = "1.2"
TUNE_FEATURES     = "armv7a vfp neon cortexa8"
TARGET_FPU        = "vfp-neon"
meta              
meta-yocto        = "(nobranch):d20a24310eb43fed9a3f3e75752c9ad45a18cbe4"

Note: commit d20a243 is "Tagging as denzil-7.0 for denzil-7.0",
i. e. this is the "denxil-7.0" release version.


According to the Reference Manual, Appendix D. "Reference: Images"
(cf. http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html#ref-images):

core-image-sato-dev: A core-image-sato image suitable for development
that also includes a native toolchain and libraries needed to build
applications on the device itself. The image also includes testing
and profiling tools as well as debug symbols. This image was formerly
core-image-sdk.

However, the core-image-sato-dev image does not contain a native tool
chain; for example, there is no "gcc" binary included anywhere:

-> cd tmp/deploy/images/
-> tar jtvf core-image-sato-dev-beagleboard-20120514202220.rootfs.tar.bz2 | grep gcc
-rw-r--r-- root/root        19 2012-05-14 23:55 ./var/lib/opkg/info/libgcc1.list
-rwxr-xr-x root/root        79 2012-05-14 23:46 ./var/lib/opkg/info/libgcc1.postinst
-rw-r--r-- root/root      1806 2012-05-14 23:46 ./var/lib/opkg/info/libgcc1.control
-rw-r--r-- root/root      1978 2012-05-14 23:46 ./var/lib/opkg/info/libgcc-s-dev.control
-rw-r--r-- root/root       430 2012-05-14 23:56 ./var/lib/opkg/info/libgcc-s-dev.list
-rw-r--r-- root/root          2226 2012-05-14 22:45 ./usr/include/avahi-common/gccmacro.h
-rw-r--r-- root/root          1968 2012-05-14 22:45 ./usr/include/liboil-0.3/liboil/liboilgcc.h
-rw-r--r-- root/root        400208 2012-05-14 22:22 ./usr/lib/arm-poky-linux-gnueabi/4.6.4/libgcc.a
-rw-r--r-- root/root         65612 2012-05-14 22:22 ./usr/lib/arm-poky-linux-gnueabi/4.6.4/libgcc_eh.a
-rwxr-xr-x root/root         39152 2012-05-14 22:22 ./lib/libgcc_s.so.1
-rw-r--r-- root/root           135 2012-05-14 22:22 ./lib/libgcc_s.so
Comment 1 Saul Wold 2012-05-16 06:53:55 UTC
I believe that this is really a documentation issue, the -dev should contain all the headers and libraries, while the -sdk contains the complete development environment
Comment 2 Wolfgang Denk 2012-05-17 19:14:07 UTC
(In reply to comment #1)
> I believe that this is really a documentation issue, the -dev should contain
> all the headers and libraries, while the -sdk contains the complete
> development environment

I'm confused.  What would be the purpose to have header files and libraries, when there are no tools included to use these?

My interpretation of the "dev" in the name was (supported by the documentation)
to mean "suitable for development" - which kind of development would that be,
without tools to develop softwrre?
Comment 3 Scott Rifenbark 2012-05-18 19:37:19 UTC
From comments (1) and (2) it sounds as if the correct description for core-image-sato-dev would be correct if I removed the reference to the toolchain as suggested initially by Wolfgang when he posted the bug.  However, it seems that the presence of the header files and libraries is now moot.  That issue is not a documentation issue and would need to be worked out by developers.  

For now I am re-wording the description of the core-image-sato-dev image to exclude the toolchain reference.

Here is the new description:

"core-image-sato-dev: A core-image-sato image suitable for development. The image includes libraries needed to build applications on the device itself, testing and profiling tools, and debug symbols. This image was formerly core-image-sdk."

Let me know if this is good to close this bug.

Scott
Comment 4 Wolfgang Denk 2012-05-18 20:29:06 UTC
(In reply to comment #3)
> From comments (1) and (2) it sounds as if the correct description for
> core-image-sato-dev would be correct if I removed the reference to the
> toolchain as suggested initially by Wolfgang when he posted the bug. 
> However, it seems that the presence of the header files and libraries is now
> moot.  That issue is not a documentation issue and would need to be worked
> out by developers.  

I have a general problem understanding the purpose of this message.
Originally (fter reading the docs) my impression was that this image
was indeed intended to support native software development tasks.

> For now I am re-wording the description of the core-image-sato-dev image to
> exclude the toolchain reference.

But which sort of software development tasks can be done without the
tool chain?

> Here is the new description:
> 
> "core-image-sato-dev: A core-image-sato image suitable for development. The
> image includes libraries needed to build applications on the device itself,
> testing and profiling tools, and debug symbols. This image was formerly
> core-image-sdk."
> 
> Let me know if this is good to close this bug.

I don't think so.

The header files make only sense if there is a tool to compile source
code - so either we add a compiler, or we can remove the header files
as well.

OK, the libraries may be useful for debugging purposes, but some of
these probably only make sense if there was a tool to link programs
against these libraries - so we either add a linker, or we can remove
them as well.


For me "development" necessarily includes building code form sources.
This is obviously not what core-image-sato-dev is intended for in it's
current form.  By adding the tools needed for real development tasks
it would be pretty similar to the -sdk image, so I guess this is not
the way to do.  That means "development" here means just debugging and
profiling - maybe the package should be renamed into
core-image-sato-dbg or somilar to make this clear?  And the
documetnation would then read:


        "core-image-sato-dbg: A core-image-sato image suitable for
        debugging and profiling. The image includes binaries and
        libraries with debug symbols, and testing and profiling
        tools. This image was formerly core-image-sdk."

What do you think?

--wd
Comment 5 Scott Rifenbark 2012-05-18 21:25:51 UTC
I agree with Wolfgang's comment (4).  This bug seems to be going beyond what the documentation can fix.  It makes me wonder if the descriptions for "core-image-lsb-dev" and "core-image-minimal-dev" are accurate.  

 core-image-minimal-dev: A core-image-minimal image suitable for development 
                         work. 

 core-image-lsb-dev: A core-image-lsb image that is suitable for development 
                     work.

Before I can accurately describe core-image-sato-dev to satisfy this bug, we need to determine just what is in the image and if what is in it will change... or if we want to change the name of the image as suggested.  

Scott
Comment 6 Saul Wold 2012-05-21 14:45:56 UTC
Ok, sorry I have been traveling and was not tracking the developments here.

I am not going to directly respond to to comments because I think we 
off track from the very beginning, so I am going to go back to the
original intent of the 3 types of images defined.

1) The bootable image for the final target environment

2) An image that include headers and libraries that can be used
   with the HOST based development environment, meaning it can be
   mounted or unzipped as part of the ADT and provide the base 
   image along with headers and libraries to do HOST based development
   and then mounted to the TARGET.  This is the -dev image, it will
   bring in all the -dev packages for the install base packages.

3) Finally the -sdk image, which is designed for TARGET based development
   and includes all header, libaries and tools to do TARGET
   based development.

The key distiction between the -dev and -sdk is HOST based vs TARGET
based development.

I hope this clears up any confusion.
Comment 7 Scott Rifenbark 2012-05-21 17:44:36 UTC
Added more detail to the -dev and -skd images in the YP Reference Manual Images appendix.  You can see the final wordings and list at http://www.yoctoproject.org/docs/latest/poky-ref-manual/poky-ref-manual.html#ref-images