OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [doc/] [html/] [user-guide/] [conflicts-and-constraints.html] - Diff between revs 28 and 174

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 28 Rev 174
<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
<!-- This material may be distributed only subject to the terms      -->
<!-- This material may be distributed only subject to the terms      -->
<!-- and conditions set forth in the Open Publication License, v1.0  -->
<!-- and conditions set forth in the Open Publication License, v1.0  -->
<!-- or later (the latest version is presently available at          -->
<!-- or later (the latest version is presently available at          -->
<!-- http://www.opencontent.org/openpub/).                           -->
<!-- http://www.opencontent.org/openpub/).                           -->
<!-- Distribution of the work or derivative of the work in any       -->
<!-- Distribution of the work or derivative of the work in any       -->
<!-- standard (paper) book form is prohibited unless prior           -->
<!-- standard (paper) book form is prohibited unless prior           -->
<!-- permission is obtained from the copyright holder.               -->
<!-- permission is obtained from the copyright holder.               -->
<HTML
<HTML
><HEAD
><HEAD
><TITLE
><TITLE
>Conflicts and constraints</TITLE
>Conflicts and constraints</TITLE
><meta name="MSSmartTagsPreventParsing" content="TRUE">
><meta name="MSSmartTagsPreventParsing" content="TRUE">
<META
<META
NAME="GENERATOR"
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
"><LINK
REL="HOME"
REL="HOME"
TITLE="eCos User Guide"
TITLE="eCos User Guide"
HREF="ecos-user-guide.html"><LINK
HREF="ecos-user-guide.html"><LINK
REL="UP"
REL="UP"
TITLE="Manual Configuration"
TITLE="Manual Configuration"
HREF="manual-configuration.html"><LINK
HREF="manual-configuration.html"><LINK
REL="PREVIOUS"
REL="PREVIOUS"
TITLE="Creating the Build Tree"
TITLE="Creating the Build Tree"
HREF="creating-build-tree.html"><LINK
HREF="creating-build-tree.html"><LINK
REL="NEXT"
REL="NEXT"
TITLE="Building the System"
TITLE="Building the System"
HREF="building-the-system.html"></HEAD
HREF="building-the-system.html"></HEAD
><BODY
><BODY
CLASS="SECT1"
CLASS="SECT1"
BGCOLOR="#FFFFFF"
BGCOLOR="#FFFFFF"
TEXT="#000000"
TEXT="#000000"
LINK="#0000FF"
LINK="#0000FF"
VLINK="#840084"
VLINK="#840084"
ALINK="#0000FF"
ALINK="#0000FF"
><DIV
><DIV
CLASS="NAVHEADER"
CLASS="NAVHEADER"
><TABLE
><TABLE
SUMMARY="Header navigation table"
SUMMARY="Header navigation table"
WIDTH="100%"
WIDTH="100%"
BORDER="0"
BORDER="0"
CELLPADDING="0"
CELLPADDING="0"
CELLSPACING="0"
CELLSPACING="0"
><TR
><TR
><TH
><TH
COLSPAN="3"
COLSPAN="3"
ALIGN="center"
ALIGN="center"
>eCos User Guide</TH
>eCos User Guide</TH
></TR
></TR
><TR
><TR
><TD
><TD
WIDTH="10%"
WIDTH="10%"
ALIGN="left"
ALIGN="left"
VALIGN="bottom"
VALIGN="bottom"
><A
><A
HREF="creating-build-tree.html"
HREF="creating-build-tree.html"
ACCESSKEY="P"
ACCESSKEY="P"
>Prev</A
>Prev</A
></TD
></TD
><TD
><TD
WIDTH="80%"
WIDTH="80%"
ALIGN="center"
ALIGN="center"
VALIGN="bottom"
VALIGN="bottom"
>Chapter 28. Manual Configuration</TD
>Chapter 28. Manual Configuration</TD
><TD
><TD
WIDTH="10%"
WIDTH="10%"
ALIGN="right"
ALIGN="right"
VALIGN="bottom"
VALIGN="bottom"
><A
><A
HREF="building-the-system.html"
HREF="building-the-system.html"
ACCESSKEY="N"
ACCESSKEY="N"
>Next</A
>Next</A
></TD
></TD
></TR
></TR
></TABLE
></TABLE
><HR
><HR
ALIGN="LEFT"
ALIGN="LEFT"
WIDTH="100%"></DIV
WIDTH="100%"></DIV
><DIV
><DIV
CLASS="SECT1"
CLASS="SECT1"
><H1
><H1
CLASS="SECT1"
CLASS="SECT1"
><A
><A
NAME="CONFLICTS-AND-CONSTRAINTS">Conflicts and constraints</H1
NAME="CONFLICTS-AND-CONSTRAINTS">Conflicts and constraints</H1
><P
><P
>Configuration options are not completely independent. For example
>Configuration options are not completely independent. For example
the C library's <TT
the C library's <TT
CLASS="FUNCTION"
CLASS="FUNCTION"
>strtod()</TT
>strtod()</TT
> and <TT
> and <TT
CLASS="FUNCTION"
CLASS="FUNCTION"
>atof()</TT
>atof()</TT
>
>
functions rely on the math library package to provide certain functionality. If the math library package is removed then the C
functions rely on the math library package to provide certain functionality. If the math library package is removed then the C
library can no longer provide these functions. Each package describes constraints like these in CDL <SPAN
library can no longer provide these functions. Each package describes constraints like these in CDL <SPAN
CLASS="emphasis"
CLASS="emphasis"
><I
><I
CLASS="EMPHASIS"
CLASS="EMPHASIS"
>"requires"</I
>"requires"</I
></SPAN
></SPAN
> properties. If a constraint is not satisfied, then the configuration contains a conflict. For any given conflict there can
> properties. If a constraint is not satisfied, then the configuration contains a conflict. For any given conflict there can
be several resolution options. For example, it would be possible to add the math library package back to the
be several resolution options. For example, it would be possible to add the math library package back to the
configuration, or to disable the <TT
configuration, or to disable the <TT
CLASS="FUNCTION"
CLASS="FUNCTION"
>strtod()</TT
>strtod()</TT
> and <TT
> and <TT
CLASS="FUNCTION"
CLASS="FUNCTION"
>atof()</TT
>atof()</TT
> functions.</P
> functions.</P
><P
><P
>The <SPAN
>The <SPAN
CLASS="PRODUCTNAME"
CLASS="PRODUCTNAME"
>eCos</SPAN
>eCos</SPAN
> configuration tools will report any conflicts in the current configuration. If there are any such conflicts
> configuration tools will report any conflicts in the current configuration. If there are any such conflicts
then the configuration is usually unsafe and it makes no sense to build and run <SPAN
then the configuration is usually unsafe and it makes no sense to build and run <SPAN
CLASS="PRODUCTNAME"
CLASS="PRODUCTNAME"
>eCos</SPAN
>eCos</SPAN
> in such circumstances. In fact,
> in such circumstances. In fact,
any attempt at building <SPAN
any attempt at building <SPAN
CLASS="PRODUCTNAME"
CLASS="PRODUCTNAME"
>eCos</SPAN
>eCos</SPAN
> is likely to fail. In exceptional cases it is possible to override this by using e.g. the
> is likely to fail. In exceptional cases it is possible to override this by using e.g. the
<TT
<TT
CLASS="OPTION"
CLASS="OPTION"
>--ignore-errors</TT
>--ignore-errors</TT
> qualifier with ecosconfig. </P
> qualifier with ecosconfig. </P
><P
><P
>Many constraints are fairly simple in nature, and the configuration tools contain an inference engine which can
>Many constraints are fairly simple in nature, and the configuration tools contain an inference engine which can
resolve the associated conflicts automatically. For example, if the math library package is removed then the
resolve the associated conflicts automatically. For example, if the math library package is removed then the
inference engine can resolve the resulting conflict by disabling the configuration option for <TT
inference engine can resolve the resulting conflict by disabling the configuration option for <TT
CLASS="FUNCTION"
CLASS="FUNCTION"
>strtod()</TT
>strtod()</TT
> and <TT
> and <TT
CLASS="FUNCTION"
CLASS="FUNCTION"
>atof()</TT
>atof()</TT
>. All
>. All
such changes will be reported. Sometimes the inference engine cannot resolve a conflict, for example it is not
such changes will be reported. Sometimes the inference engine cannot resolve a conflict, for example it is not
allowed to override a change that has been made explicitly by the user. Sometimes it will find a solution which does
allowed to override a change that has been made explicitly by the user. Sometimes it will find a solution which does
not match the application's requirements. </P
not match the application's requirements. </P
><P
><P
>A typical session involving conflicts would look something like this:
>A typical session involving conflicts would look something like this:
<TABLE
<TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ ecosconfig new pid</PRE
>$ ecosconfig new pid</PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
>This creates a new configuration with the default template. For most targets this will not result in any conflicts,
>This creates a new configuration with the default template. For most targets this will not result in any conflicts,
because the default settings for the various options meet the requirements of the default template.</P
because the default settings for the various options meet the requirements of the default template.</P
><P
><P
> For some targets
> For some targets
there may be conflicts and the inference engine would come into play.
there may be conflicts and the inference engine would come into play.
<TABLE
<TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ ecosconfig remove libm
>$ ecosconfig remove libm
U CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, new inferred value 0
U CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, new inferred value 0
U CYGFUN_LIBC_strtod, new inferred value 0
U CYGFUN_LIBC_strtod, new inferred value 0
U CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, new inferred value 0 </PRE
U CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, new inferred value 0 </PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
>
>
ecosconfig reports that this change caused three conflicts, all in the C library. The inference engine was able to
ecosconfig reports that this change caused three conflicts, all in the C library. The inference engine was able to
resolve all the conflicts and update the relevant configuration options accordingly. </P
resolve all the conflicts and update the relevant configuration options accordingly. </P
><P
><P
>To suppress the inference engine <TT
>To suppress the inference engine <TT
CLASS="OPTION"
CLASS="OPTION"
>--no-resolve</TT
>--no-resolve</TT
> can be used:
> can be used:
<TABLE
<TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ ecosconfig new pid
>$ ecosconfig new pid
$ ecosconfig --no-resolve remove libm
$ ecosconfig --no-resolve remove libm
C CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
C CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
C CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
C CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM </PRE
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM </PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
>
>
Three unresolved conflicts are reported.</P
Three unresolved conflicts are reported.</P
><P
><P
>The <B
>The <B
CLASS="COMMAND"
CLASS="COMMAND"
>check</B
>check</B
> command can be used to get the current state of the
> command can be used to get the current state of the
configuration, and the <TT
configuration, and the <TT
CLASS="OPTION"
CLASS="OPTION"
>--verbose</TT
>--verbose</TT
> qualifier will provide additional information: </P
> qualifier will provide additional information: </P
><TABLE
><TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ ecosconfig --srcdir /home/bartv/ecc/ecc --verbose check
>$ ecosconfig --srcdir /home/bartv/ecc/ecc --verbose check
Target: pid
Target: pid
Template: default
Template: default
Removed:
Removed:
 CYGPKG_LIBM
 CYGPKG_LIBM
3 conflict(s):
3 conflict(s):
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
 Possible solution:
 Possible solution:
    CYGFUN_LIBC_strtod -&#62; 0
    CYGFUN_LIBC_strtod -&#62; 0
    CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT -&#62; 0
    CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT -&#62; 0
C CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
C CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
 Possible solution:
 Possible solution:
    CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT -&#62; 0
    CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT -&#62; 0
C CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
C CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, "requires" constraint not satisfied:      CYGPKG_LIBM
 Possible solution:
 Possible solution:
    CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT -&#62; 0 </PRE
    CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT -&#62; 0 </PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
><P
><P
>If the proposed solutions are acceptable, the resolve command can be used to apply them:
>If the proposed solutions are acceptable, the resolve command can be used to apply them:
<TABLE
<TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ ecosconfig resolve
>$ ecosconfig resolve
U CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, new inferred value 0
U CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT, new inferred value 0
U CYGFUN_LIBC_strtod, new inferred value 0
U CYGFUN_LIBC_strtod, new inferred value 0
U CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, new inferred value 0 </PRE
U CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT, new inferred value 0 </PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
></P
></P
><P
><P
>The current configuration is again conflict-free and it is possible to generate a build tree. The <TT
>The current configuration is again conflict-free and it is possible to generate a build tree. The <TT
CLASS="OPTION"
CLASS="OPTION"
>--quiet</TT
>--quiet</TT
> qualifier can
> qualifier can
be used to suppress the change messages, if desired.</P
be used to suppress the change messages, if desired.</P
><P
><P
>When changing individual configuration options by editing the ecos.ecc file (as described below), the resulting
>When changing individual configuration options by editing the ecos.ecc file (as described below), the resulting
system should be checked and any problems should be resolved. For example, if CYGFUN_LIBC_strtod is
system should be checked and any problems should be resolved. For example, if CYGFUN_LIBC_strtod is
explicitly enabled in the savefile:
explicitly enabled in the savefile:
<TABLE
<TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ edit ecos.ecc
>$ edit ecos.ecc
$ ecosconfig check
$ ecosconfig check
Target: pid
Target: pid
Template: default
Template: default
Removed:
Removed:
    CYGPKG_LIBM
    CYGPKG_LIBM
1 conflict(s):
1 conflict(s):
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
$ ecosconfig resolve
$ ecosconfig resolve
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM </PRE
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM </PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
>
>
In this case the inference engine cannot resolve the conflict automatically because that would involve changing a
In this case the inference engine cannot resolve the conflict automatically because that would involve changing a
user setting. Any attempt to generate a build tree will fail:
user setting. Any attempt to generate a build tree will fail:
<TABLE
<TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ ecosconfig --srcdir /home/bartv/ecc/ecc tree
>$ ecosconfig --srcdir /home/bartv/ecc/ecc tree
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
Unable to generate build tree, this configuration still contains conflicts.
Unable to generate build tree, this configuration still contains conflicts.
Either resolve the conflicts or use --ignore-errors </PRE
Either resolve the conflicts or use --ignore-errors </PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
></P
></P
><P
><P
>It is still possible to generate a build tree:
>It is still possible to generate a build tree:
<TABLE
<TABLE
BORDER="5"
BORDER="5"
BGCOLOR="#E0E0F0"
BGCOLOR="#E0E0F0"
WIDTH="70%"
WIDTH="70%"
><TR
><TR
><TD
><TD
><PRE
><PRE
CLASS="SCREEN"
CLASS="SCREEN"
>$ ecosconfig --srcdir /home/bartv/ecc/ecc --ignore-errors tree
>$ ecosconfig --srcdir /home/bartv/ecc/ecc --ignore-errors tree
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
C CYGFUN_LIBC_strtod, "requires" constraint not satisfied: CYGPKG_LIBM
$ make </PRE
$ make </PRE
></TD
></TD
></TR
></TR
></TABLE
></TABLE
>
>
In this case <SPAN
In this case <SPAN
CLASS="PRODUCTNAME"
CLASS="PRODUCTNAME"
>eCos</SPAN
>eCos</SPAN
> will fail to build. In other cases of unresolved conflicts <SPAN
> will fail to build. In other cases of unresolved conflicts <SPAN
CLASS="PRODUCTNAME"
CLASS="PRODUCTNAME"
>eCos</SPAN
>eCos</SPAN
> may build, but may not run. In
> may build, but may not run. In
general all conflicts should be resolved by editing the <TT
general all conflicts should be resolved by editing the <TT
CLASS="FILENAME"
CLASS="FILENAME"
>ecos.ecc</TT
>ecos.ecc</TT
> file, by letting the inference engine make appropriate
> file, by letting the inference engine make appropriate
changes, or by other means, before any attempt is made to build or run <SPAN
changes, or by other means, before any attempt is made to build or run <SPAN
CLASS="PRODUCTNAME"
CLASS="PRODUCTNAME"
>eCos</SPAN
>eCos</SPAN
>. </P
>. </P
></DIV
></DIV
><DIV
><DIV
CLASS="NAVFOOTER"
CLASS="NAVFOOTER"
><HR
><HR
ALIGN="LEFT"
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
SUMMARY="Footer navigation table"
WIDTH="100%"
WIDTH="100%"
BORDER="0"
BORDER="0"
CELLPADDING="0"
CELLPADDING="0"
CELLSPACING="0"
CELLSPACING="0"
><TR
><TR
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="left"
ALIGN="left"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="creating-build-tree.html"
HREF="creating-build-tree.html"
ACCESSKEY="P"
ACCESSKEY="P"
>Prev</A
>Prev</A
></TD
></TD
><TD
><TD
WIDTH="34%"
WIDTH="34%"
ALIGN="center"
ALIGN="center"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="ecos-user-guide.html"
HREF="ecos-user-guide.html"
ACCESSKEY="H"
ACCESSKEY="H"
>Home</A
>Home</A
></TD
></TD
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="right"
ALIGN="right"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="building-the-system.html"
HREF="building-the-system.html"
ACCESSKEY="N"
ACCESSKEY="N"
>Next</A
>Next</A
></TD
></TD
></TR
></TR
><TR
><TR
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="left"
ALIGN="left"
VALIGN="top"
VALIGN="top"
>Creating the Build Tree</TD
>Creating the Build Tree</TD
><TD
><TD
WIDTH="34%"
WIDTH="34%"
ALIGN="center"
ALIGN="center"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="manual-configuration.html"
HREF="manual-configuration.html"
ACCESSKEY="U"
ACCESSKEY="U"
>Up</A
>Up</A
></TD
></TD
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="right"
ALIGN="right"
VALIGN="top"
VALIGN="top"
>Building the System</TD
>Building the System</TD
></TR
></TR
></TABLE
></TABLE
></DIV
></DIV
></BODY
></BODY
></HTML
></HTML
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.