how to fix compile warning: cannot find entry symbol _ModuleEntryPoint


Andrew Fish
 

Wenyi,

You can pass -n 1 to the edk2 build command to force a single threaded build to help debug compile issues.

Thanks,

Andrew Fish

On Sep 30, 2020, at 12:00 AM, xiewenyi (A) <xiewenyi2@...> wrote:

Thanks, Andrew, Laszlo and liming, with your help I find the module which really own the warning.

As the compile is multithreading, the order in compile log is not right. The module which cause warning is written by ourselves.
In this module's inf file, MODULE_TYPE is set as USER_DEFINED, and UefiDriverEntryPoint is not set in [LibraryClasses].


On 2020/9/30 0:00, Andrew Fish wrote:
Wenyi,

If you look under the Build results <Platform>/<DEBUG/RELEASE>_<COMPILER>/AArch64/Edk2/ArmPkg/Drivers/ArmGic/ (hopefully I got that right) and go down a little bit you will see the build generated GNUmakefile. You might want to take a look at that to try and figure out what is going on?

Thanks,

Andrew Fish


On Sep 29, 2020, at 7:23 AM, wenyi,xie via groups.io <http://groups.io> <xiewenyi2@... <mailto:xiewenyi2@...>> wrote:

I checked my platform DSC and there's UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf in the section [LibraryClasses.common].
I'm not sure why _ModuleEntryPoint can't be found when link the object.

Regards
Wenyi

On 2020/9/29 2:21, Laszlo Ersek wrote:
On 09/28/20 10:57, wenyi,xie via groups.io <http://groups.io> wrote:
Hi, all
I use edk2-stable201903 in my project and meet a compile warning like below,

/opt/buildtools/gcc-linaro-7.4.1-2019.02/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.4.1/../../../../aarch64-linux-gnu/bin/ld: warning: cannot find entry symbol _ModuleEntryPoint; not setting start address

It seems like the warning happens when building EDKII/Edk2/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
does anyone know how to fix it?
If need more info, please contact me, thanks!

here's some of my build option,
Architecture(s) = AARCH64
Build target = RELEASE
Toolchain = GCC5
The UefiDriverEntryPoint lib class in the [Sources] section in
"ArmPkg/Drivers/ArmGic/ArmGicDxe.inf" should be resolved by your
platform DSC to
"MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf".

That's where the definition of _ModuleEntryPoint() should come from (see
"MdePkg/Library/UefiDriverEntryPoint/DriverEntryPoint.c").

Thanks
Laszlo


Andrew Fish
 

Wenyi,

If you look under the Build results <Platform>/<DEBUG/RELEASE>_<COMPILER>/AArch64/Edk2/ArmPkg/Drivers/ArmGic/ (hopefully I got that right) and go down a little bit you will see the build generated GNUmakefile. You might want to take a look at that to try and figure out what is going on?

Thanks,

Andrew Fish

On Sep 29, 2020, at 7:23 AM, wenyi,xie via groups.io <xiewenyi2@...> wrote:

I checked my platform DSC and there's UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf in the section [LibraryClasses.common].
I'm not sure why _ModuleEntryPoint can't be found when link the object.

Regards
Wenyi

On 2020/9/29 2:21, Laszlo Ersek wrote:
On 09/28/20 10:57, wenyi,xie via groups.io wrote:
Hi, all
I use edk2-stable201903 in my project and meet a compile warning like below,

/opt/buildtools/gcc-linaro-7.4.1-2019.02/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.4.1/../../../../aarch64-linux-gnu/bin/ld: warning: cannot find entry symbol _ModuleEntryPoint; not setting start address

It seems like the warning happens when building EDKII/Edk2/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
does anyone know how to fix it?
If need more info, please contact me, thanks!

here's some of my build option,
Architecture(s) = AARCH64
Build target = RELEASE
Toolchain = GCC5
The UefiDriverEntryPoint lib class in the [Sources] section in
"ArmPkg/Drivers/ArmGic/ArmGicDxe.inf" should be resolved by your
platform DSC to
"MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf".

That's where the definition of _ModuleEntryPoint() should come from (see
"MdePkg/Library/UefiDriverEntryPoint/DriverEntryPoint.c").

Thanks
Laszlo


wenyi,xie
 

Thanks, Andrew, Laszlo and liming, with your help I find the module which really own the warning.

As the compile is multithreading, the order in compile log is not right. The module which cause warning is written by ourselves.
In this module's inf file, MODULE_TYPE is set as USER_DEFINED, and UefiDriverEntryPoint is not set in [LibraryClasses].

On 2020/9/30 0:00, Andrew Fish wrote:
Wenyi,

If you look under the Build results   <Platform>/<DEBUG/RELEASE>_<COMPILER>/AArch64/Edk2/ArmPkg/Drivers/ArmGic/ (hopefully I got that right) and go down a little bit you will see the build generated GNUmakefile. You might want to take a look at that to try and figure out what is going on?

Thanks,

Andrew Fish


On Sep 29, 2020, at 7:23 AM, wenyi,xie via groups.io <http://groups.io> <xiewenyi2@... <mailto:xiewenyi2@...>> wrote:

I checked my platform DSC and there's UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf in the section [LibraryClasses.common].
I'm not sure why _ModuleEntryPoint can't be found when link the object.

Regards
Wenyi

On 2020/9/29 2:21, Laszlo Ersek wrote:
On 09/28/20 10:57, wenyi,xie via groups.io <http://groups.io> wrote:
Hi, all
I use edk2-stable201903 in my project and meet a compile warning like below,

/opt/buildtools/gcc-linaro-7.4.1-2019.02/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.4.1/../../../../aarch64-linux-gnu/bin/ld: warning: cannot find entry symbol _ModuleEntryPoint; not setting start address

It seems like the warning happens when building EDKII/Edk2/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
does anyone know how to fix it?
If need more info, please contact me, thanks!

here's some of my build option, 
Architecture(s)  = AARCH64
Build target     = RELEASE
Toolchain        = GCC5
The UefiDriverEntryPoint lib class in the [Sources] section in
"ArmPkg/Drivers/ArmGic/ArmGicDxe.inf" should be resolved by your
platform DSC to
"MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf".

That's where the definition of _ModuleEntryPoint() should come from (see
"MdePkg/Library/UefiDriverEntryPoint/DriverEntryPoint.c").

Thanks
Laszlo


wenyi,xie
 

I checked my platform DSC and there's UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf in the section [LibraryClasses.common].
I'm not sure why _ModuleEntryPoint can't be found when link the object.

Regards
Wenyi

On 2020/9/29 2:21, Laszlo Ersek wrote:
On 09/28/20 10:57, wenyi,xie via groups.io wrote:
Hi, all
I use edk2-stable201903 in my project and meet a compile warning like below,

/opt/buildtools/gcc-linaro-7.4.1-2019.02/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.4.1/../../../../aarch64-linux-gnu/bin/ld: warning: cannot find entry symbol _ModuleEntryPoint; not setting start address

It seems like the warning happens when building EDKII/Edk2/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
does anyone know how to fix it?
If need more info, please contact me, thanks!

here's some of my build option,
Architecture(s) = AARCH64
Build target = RELEASE
Toolchain = GCC5
The UefiDriverEntryPoint lib class in the [Sources] section in
"ArmPkg/Drivers/ArmGic/ArmGicDxe.inf" should be resolved by your
platform DSC to
"MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf".

That's where the definition of _ModuleEntryPoint() should come from (see
"MdePkg/Library/UefiDriverEntryPoint/DriverEntryPoint.c").

Thanks
Laszlo


Laszlo Ersek
 

On 09/28/20 10:57, wenyi,xie via groups.io wrote:
Hi, all
I use edk2-stable201903 in my project and meet a compile warning like below,

/opt/buildtools/gcc-linaro-7.4.1-2019.02/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.4.1/../../../../aarch64-linux-gnu/bin/ld: warning: cannot find entry symbol _ModuleEntryPoint; not setting start address

It seems like the warning happens when building EDKII/Edk2/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
does anyone know how to fix it?
If need more info, please contact me, thanks!

here's some of my build option,
Architecture(s) = AARCH64
Build target = RELEASE
Toolchain = GCC5
The UefiDriverEntryPoint lib class in the [Sources] section in
"ArmPkg/Drivers/ArmGic/ArmGicDxe.inf" should be resolved by your
platform DSC to
"MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf".

That's where the definition of _ModuleEntryPoint() should come from (see
"MdePkg/Library/UefiDriverEntryPoint/DriverEntryPoint.c").

Thanks
Laszlo


wenyi,xie
 

Hi, all
I use edk2-stable201903 in my project and meet a compile warning like below,

/opt/buildtools/gcc-linaro-7.4.1-2019.02/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.4.1/../../../../aarch64-linux-gnu/bin/ld: warning: cannot find entry symbol _ModuleEntryPoint; not setting start address

It seems like the warning happens when building EDKII/Edk2/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
does anyone know how to fix it?
If need more info, please contact me, thanks!

here's some of my build option,
Architecture(s) = AARCH64
Build target = RELEASE
Toolchain = GCC5