Re: [PATCH 4.14 103/156] scripts/faddr2line: extend usage on generic arch

2018-02-04 Thread Greg Kroah-Hartman
On Sun, Feb 04, 2018 at 02:46:58PM +0800, Liu, Changcheng wrote:
> Hi Greg Kroah-Hartman,
> Below commit is needed to resolve issue in this patch:
> Upstream commit 4cc90b4cc3d4955f79eae4f7f9d64e67e17b468e

Many thanks for letting me know, I'll go queue that up.

greg k-h


Re: [PATCH 4.14 103/156] scripts/faddr2line: extend usage on generic arch

2018-02-03 Thread Liu, Changcheng
Hi Greg Kroah-Hartman,
Below commit is needed to resolve issue in this patch:
Upstream commit 4cc90b4cc3d4955f79eae4f7f9d64e67e17b468e

B.R.
Changcheng

On 17:58 Fri 02 Feb, Greg Kroah-Hartman wrote:
> 4.14-stable review patch.  If anyone has any objections, please let me know.
> 
> --
> 
> From: "Liu, Changcheng" 
> 
> 
> [ Upstream commit 95a87982541932503d3f59aba4c30b0bde0a6294 ]
> 
> When cross-compiling, fadd2line should use the binary tool used for the
> target system, rather than that of the host.
> 
> Link: http://lkml.kernel.org/r/20171121092911.GA150711@sofia
> Signed-off-by: Liu Changcheng 
> Cc: Kate Stewart 
> Cc: NeilBrown 
> Cc: Thomas Gleixner 
> Cc: Greg Kroah-Hartman 
> Signed-off-by: Andrew Morton 
> Signed-off-by: Linus Torvalds 
> Signed-off-by: Sasha Levin 
> Signed-off-by: Greg Kroah-Hartman 
> ---
>  scripts/faddr2line |   21 ++---
>  1 file changed, 14 insertions(+), 7 deletions(-)
> 
> --- a/scripts/faddr2line
> +++ b/scripts/faddr2line
> @@ -44,9 +44,16 @@
>  set -o errexit
>  set -o nounset
>  
> +READELF="${CROSS_COMPILE}readelf"
> +ADDR2LINE="${CROSS_COMPILE}addr2line"
> +SIZE="${CROSS_COMPILE}size"
> +NM="${CROSS_COMPILE}nm"
> +
>  command -v awk >/dev/null 2>&1 || die "awk isn't installed"
> -command -v readelf >/dev/null 2>&1 || die "readelf isn't installed"
> -command -v addr2line >/dev/null 2>&1 || die "addr2line isn't installed"
> +command -v ${READELF} >/dev/null 2>&1 || die "readelf isn't installed"
> +command -v ${ADDR2LINE} >/dev/null 2>&1 || die "addr2line isn't installed"
> +command -v ${SIZE} >/dev/null 2>&1 || die "size isn't installed"
> +command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed"
>  
>  usage() {
>   echo "usage: faddr2line   ..." 
> >&2
> @@ -69,10 +76,10 @@ die() {
>  find_dir_prefix() {
>   local objfile=$1
>  
> - local start_kernel_addr=$(readelf -sW $objfile | awk '$8 == 
> "start_kernel" {printf "0x%s", $2}')
> + local start_kernel_addr=$(${READELF} -sW $objfile | awk '$8 == 
> "start_kernel" {printf "0x%s", $2}')
>   [[ -z $start_kernel_addr ]] && return
>  
> - local file_line=$(addr2line -e $objfile $start_kernel_addr)
> + local file_line=$(${ADDR2LINE} -e $objfile $start_kernel_addr)
>   [[ -z $file_line ]] && return
>  
>   local prefix=${file_line%init/main.c:*}
> @@ -104,7 +111,7 @@ __faddr2line() {
>  
>   # Go through each of the object's symbols which match the func name.
>   # In rare cases there might be duplicates.
> - file_end=$(size -Ax $objfile | awk '$1 == ".text" {print $2}')
> + file_end=$(${SIZE} -Ax $objfile | awk '$1 == ".text" {print $2}')
>   while read symbol; do
>   local fields=($symbol)
>   local sym_base=0x${fields[0]}
> @@ -156,10 +163,10 @@ __faddr2line() {
>  
>   # pass real address to addr2line
>   echo "$func+$offset/$sym_size:"
> - addr2line -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;"
> + ${ADDR2LINE} -fpie $objfile $addr | sed "s; 
> $dir_prefix\(\./\)*; ;"
>   DONE=1
>  
> - done < <(nm -n $objfile | awk -v fn=$func -v end=$file_end '$3 == fn { 
> found=1; line=$0; start=$1; next } found == 1 { found=0; print line, "0x"$1 } 
> END {if (found == 1) print line, end; }')
> + done < <(${NM} -n $objfile | awk -v fn=$func -v end=$file_end '$3 == fn 
> { found=1; line=$0; start=$1; next } found == 1 { found=0; print line, "0x"$1 
> } END {if (found == 1) print line, end; }')
>  }
>  
>  [[ $# -lt 2 ]] && usage
> 
> 


[PATCH 4.14 103/156] scripts/faddr2line: extend usage on generic arch

2018-02-02 Thread Greg Kroah-Hartman
4.14-stable review patch.  If anyone has any objections, please let me know.

--

From: "Liu, Changcheng" 


[ Upstream commit 95a87982541932503d3f59aba4c30b0bde0a6294 ]

When cross-compiling, fadd2line should use the binary tool used for the
target system, rather than that of the host.

Link: http://lkml.kernel.org/r/20171121092911.GA150711@sofia
Signed-off-by: Liu Changcheng 
Cc: Kate Stewart 
Cc: NeilBrown 
Cc: Thomas Gleixner 
Cc: Greg Kroah-Hartman 
Signed-off-by: Andrew Morton 
Signed-off-by: Linus Torvalds 
Signed-off-by: Sasha Levin 
Signed-off-by: Greg Kroah-Hartman 
---
 scripts/faddr2line |   21 ++---
 1 file changed, 14 insertions(+), 7 deletions(-)

--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -44,9 +44,16 @@
 set -o errexit
 set -o nounset
 
+READELF="${CROSS_COMPILE}readelf"
+ADDR2LINE="${CROSS_COMPILE}addr2line"
+SIZE="${CROSS_COMPILE}size"
+NM="${CROSS_COMPILE}nm"
+
 command -v awk >/dev/null 2>&1 || die "awk isn't installed"
-command -v readelf >/dev/null 2>&1 || die "readelf isn't installed"
-command -v addr2line >/dev/null 2>&1 || die "addr2line isn't installed"
+command -v ${READELF} >/dev/null 2>&1 || die "readelf isn't installed"
+command -v ${ADDR2LINE} >/dev/null 2>&1 || die "addr2line isn't installed"
+command -v ${SIZE} >/dev/null 2>&1 || die "size isn't installed"
+command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed"
 
 usage() {
echo "usage: faddr2line   ..." 
>&2
@@ -69,10 +76,10 @@ die() {
 find_dir_prefix() {
local objfile=$1
 
-   local start_kernel_addr=$(readelf -sW $objfile | awk '$8 == 
"start_kernel" {printf "0x%s", $2}')
+   local start_kernel_addr=$(${READELF} -sW $objfile | awk '$8 == 
"start_kernel" {printf "0x%s", $2}')
[[ -z $start_kernel_addr ]] && return
 
-   local file_line=$(addr2line -e $objfile $start_kernel_addr)
+   local file_line=$(${ADDR2LINE} -e $objfile $start_kernel_addr)
[[ -z $file_line ]] && return
 
local prefix=${file_line%init/main.c:*}
@@ -104,7 +111,7 @@ __faddr2line() {
 
# Go through each of the object's symbols which match the func name.
# In rare cases there might be duplicates.
-   file_end=$(size -Ax $objfile | awk '$1 == ".text" {print $2}')
+   file_end=$(${SIZE} -Ax $objfile | awk '$1 == ".text" {print $2}')
while read symbol; do
local fields=($symbol)
local sym_base=0x${fields[0]}
@@ -156,10 +163,10 @@ __faddr2line() {
 
# pass real address to addr2line
echo "$func+$offset/$sym_size:"
-   addr2line -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;"
+   ${ADDR2LINE} -fpie $objfile $addr | sed "s; 
$dir_prefix\(\./\)*; ;"
DONE=1
 
-   done < <(nm -n $objfile | awk -v fn=$func -v end=$file_end '$3 == fn { 
found=1; line=$0; start=$1; next } found == 1 { found=0; print line, "0x"$1 } 
END {if (found == 1) print line, end; }')
+   done < <(${NM} -n $objfile | awk -v fn=$func -v end=$file_end '$3 == fn 
{ found=1; line=$0; start=$1; next } found == 1 { found=0; print line, "0x"$1 } 
END {if (found == 1) print line, end; }')
 }
 
 [[ $# -lt 2 ]] && usage