1################################################################
2# Boilerplate text to be included by any DSC file using the
3# Standard Libraries.
4#
5# The including DSC file must DEFINE the EMULATE macro if
6# the application is to be run in an emulation environment.
7#
8#  Copyright (c) 2016, Daryl McDaniel. All rights reserved.<BR>
9#  Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>
10#  This program and the accompanying materials
11#  are licensed and made available under the terms and conditions of the BSD License
12#  which accompanies this distribution. The full text of the license may be found at
13#  http://opensource.org/licenses/bsd-license.
14#
15#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17################################################################
18
19##########
20#  Socket Support Libraries
21##########
22
23[LibraryClasses.common]
24  BsdSocketLib|StdLib/BsdSocketLib/BsdSocketLib.inf
25  EfiSocketLib|StdLib/EfiSocketLib/EfiSocketLib.inf
26  UseSocketDxe|StdLib/UseSocketDxe/UseSocketDxe.inf
27
28[LibraryClasses.Common.UEFI_APPLICATION]
29  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
30  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
31  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
32  ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
33
34  #
35  # C Standard Libraries
36  #
37  LibC|StdLib/LibC/LibC.inf
38  LibCType|StdLib/LibC/Ctype/Ctype.inf
39  LibLocale|StdLib/LibC/Locale/Locale.inf
40  LibMath|StdLib/LibC/Math/Math.inf
41  LibSignal|StdLib/LibC/Signal/Signal.inf
42  LibStdio|StdLib/LibC/Stdio/Stdio.inf
43  LibStdLib|StdLib/LibC/StdLib/StdLib.inf
44  LibString|StdLib/LibC/String/String.inf
45  LibTime|StdLib/LibC/Time/Time.inf
46  LibUefi|StdLib/LibC/Uefi/Uefi.inf
47  LibWchar|StdLib/LibC/Wchar/Wchar.inf
48
49# Common Utilities for Networking Libraries
50  LibNetUtil|StdLib/LibC/NetUtil/NetUtil.inf
51
52# Additional libraries for POSIX functionality.
53  LibPosix|StdLib/PosixLib/PosixLib.inf   # Combines LibErr, LibGen, LibGlob, LibStringlist, GetPass into one library
54
55  LibErr|StdLib/PosixLib/Err/LibErr.inf
56  LibGen|StdLib/PosixLib/Gen/LibGen.inf
57  LibGlob|StdLib/PosixLib/Glob/LibGlob.inf
58  LibStringlist|StdLib/PosixLib/Stringlist/LibStringlist.inf
59  LibIIO|StdLib/LibC/Uefi/InteractiveIO/IIO.inf
60
61# Additional, non-standard, libraries
62  LibContainer|StdLib/LibC/Containers/ContainerLib.inf
63
64# Libraries for device abstractions within the Standard C Library
65# Applications should not directly access any functions defined in these libraries.
66  LibGdtoa|StdLib/LibC/gdtoa/gdtoa.inf
67  DevConsole|StdLib/LibC/Uefi/Devices/daConsole.inf
68  DevShell|StdLib/LibC/Uefi/Devices/daShell.inf       # DEPRECATED!  Please use DevMedia for new code.
69  DevMedia|StdLib/LibC/Uefi/Devices/daShell.inf
70  DevUtility|StdLib/LibC/Uefi/Devices/daUtility.inf
71
72  LuaLib|AppPkg/Applications/Lua/LuaLib.inf           # Lua language library
73
74[LibraryClasses.ARM]
75  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
76  NULL|StdLib/LibC/Softfloat/Softfloat.inf
77
78  # Add support for GCC stack protector
79  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
80
81[LibraryClasses.AArch64]
82  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
83
84  # Use the softfloat library to cover missing hardfloat operations.
85  NULL|StdLib/LibC/Softfloat/Softfloat.inf
86
87  # Add support for GCC stack protector
88  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
89
90[Components]
91# BaseLib and BaseMemoryLib need to be built with the /GL- switch when using the Microsoft
92# tool chain.  This is required so that the library functions can be resolved during
93# the second pass of the linker during Link-time-code-generation.
94###
95  MdePkg/Library/BaseLib/BaseLib.inf {
96    <BuildOptions>
97      MSFT:*_*_*_CC_FLAGS    = /X /Zc:wchar_t /GL-
98  }
99
100  MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf {
101    <BuildOptions>
102      MSFT:*_*_*_CC_FLAGS    = /X /Zc:wchar_t /GL-
103  }
104
105##########
106#  Socket Layer
107##########
108  StdLib/SocketDxe/SocketDxe.inf
109
110
111##############################################################################
112#
113# See the additional comments below if you plan to run applications under an
114# emulation environment.
115#
116
117[BuildOptions]
118!ifdef $(EMULATE)
119  # The Build Options, below, are only used when building the Standard Libraries
120  # to be run under an emulation environment; such as NT32Pkg.
121  # They disable optimization which facillitates debugging under the Emulation environment.
122  INTEL:*_*_IA32_CC_FLAGS   = /Od /D UEFI_C_SOURCE
123   MSFT:*_*_IA32_CC_FLAGS   = /Od /D UEFI_C_SOURCE
124    GCC:*_*_IA32_CC_FLAGS   = -O0 -DUEFI_C_SOURCE
125    RVCT:*_*_*_CC_FLAGS     = --library_interface=none -DUEFI_C_SOURCE -J$(WORKSPACE)/StdLib/Include -J$(WORKSPACE)/StdLib/Include/Arm
126   XCODE:*_*_*_CC_FLAGS     = -O0 -DUEFI_C_SOURCE -Wno-unused-const-variable -Wno-string-compare -Wno-sometimes-uninitialized
127
128!else
129  # These Build Options are used when building the Standard Libraries to be run
130  # on real hardware.
131   INTEL:*_*_*_CC_FLAGS     = /Qfreestanding /D UEFI_C_SOURCE
132    MSFT:*_*_*_CC_FLAGS     = /X /Zc:wchar_t /D UEFI_C_SOURCE
133     GCC:*_*_*_CC_FLAGS     = -nostdinc -nostdlib -DUEFI_C_SOURCE
134    RVCT:*_*_*_CC_FLAGS     = --library_interface=none -DUEFI_C_SOURCE -J$(WORKSPACE)/StdLib/Include -J$(WORKSPACE)/StdLib/Include/Arm
135   XCODE:*_*_*_CC_FLAGS     = -nostdinc -nostdlib -DUEFI_C_SOURCE -Wno-unused-const-variable -Wno-string-compare -Wno-sometimes-uninitialized
136!endif
137
138  # Temporarily restrict compiler warnings to those produced by VS2012.
139  # Code that fails when these flags are removed will have to be rewritten
140  # in order to pass.  This may be as simple as renaming an object, but may
141  # require more significant changes.
142    MSFT:*_VS2015_*_CC_FLAGS          = /Wv:11
143    MSFT:*_VS2015x86_*_CC_FLAGS       = /Wv:11
144    MSFT:*_VS2015xASL_*_CC_FLAGS      = /Wv:11
145    MSFT:*_VS2015x86xASL_*_CC_FLAGS   = /Wv:11
146