Import new elftoolchain at SVN-r4037
This commit is contained in:
parent
3d5fc26390
commit
4639c15b67
|
@ -1,6 +1,6 @@
|
|||
# Id: Makefile 3097 2014-09-02 22:10:18Z kaiwang27
|
||||
# Id: Makefile 3594 2018-04-11 18:26:50Z jkoshy
|
||||
|
||||
TOP= ${.CURDIR}/..
|
||||
TOP= ..
|
||||
|
||||
LIB= dwarf
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Id: Makefile 2605 2012-10-02 17:52:20Z jkoshy
|
||||
# Id: Makefile 3925 2021-03-07 12:16:49Z jkoshy
|
||||
|
||||
TOP= ${.CURDIR}/..
|
||||
TOP= ..
|
||||
|
||||
LIB= elf
|
||||
|
||||
|
@ -15,6 +15,7 @@ SRCS= elf.c \
|
|||
elf_getarsym.c \
|
||||
elf_getbase.c \
|
||||
elf_getident.c \
|
||||
elf_getversion.c \
|
||||
elf_hash.c \
|
||||
elf_kind.c \
|
||||
elf_memory.c \
|
||||
|
@ -51,6 +52,7 @@ SRCS= elf.c \
|
|||
libelf_checksum.c \
|
||||
libelf_data.c \
|
||||
libelf_ehdr.c \
|
||||
libelf_elfmachine.c \
|
||||
libelf_extended.c \
|
||||
libelf_memory.c \
|
||||
libelf_open.c \
|
||||
|
@ -88,6 +90,7 @@ MAN= elf.3 \
|
|||
elf_getshnum.3 \
|
||||
elf_getshdrstrndx.3 \
|
||||
elf_getshstrndx.3 \
|
||||
elf_getversion.3 \
|
||||
elf_hash.3 \
|
||||
elf_kind.3 \
|
||||
elf_memory.3 \
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
.\" $NetBSD: elf_getversion.3,v 1.1.1.1 2024/03/03 14:41:47 christos Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2021 Joseph Koshy. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
|
||||
.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
.\" THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" Id: elf_getversion.3 3956 2022-03-12 12:39:30Z jkoshy
|
||||
.\"
|
||||
.Dd March 7, 2021
|
||||
.Dt ELF_GETVERSION 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm elf_getversion
|
||||
.Nd retrieve the operating version for an ELF object
|
||||
.Sh LIBRARY
|
||||
.Lb libelf
|
||||
.Sh SYNOPSIS
|
||||
.In libelf.h
|
||||
.Ft unsigned int
|
||||
.Fn elf_getversion "Elf *elf"
|
||||
.Sh DESCRIPTION
|
||||
.Em Important :
|
||||
The function
|
||||
.Fn elf_getversion
|
||||
is an extension to the
|
||||
.Xr ELF 3
|
||||
API.
|
||||
Applications that need to be portable to other implementations of
|
||||
.Li libelf
|
||||
should take care not to use this function.
|
||||
.Pp
|
||||
The function
|
||||
.Fn elf_getversion
|
||||
returns the operating version for the ELF descriptor pointed to by
|
||||
argument
|
||||
.Fa elf .
|
||||
.Pp
|
||||
This descriptor must have been allocated by a previous call to one of
|
||||
the functions that return an ELF descriptor, such as
|
||||
.Xr elf_begin 3 ,
|
||||
.Xr elf_memory 3 ,
|
||||
.Xr elf_open 3
|
||||
and
|
||||
.Xr elf_openmemory 3 .
|
||||
The object associated with the descriptor
|
||||
.Fa elf
|
||||
should be an ELF object.
|
||||
.Sh RETURN VALUES
|
||||
The function returns the operating version for the ELF object if
|
||||
successful or
|
||||
.Dv EV_NONE
|
||||
if an error occurred.
|
||||
.Sh COMPATIBILITY
|
||||
This function is an extension to the
|
||||
.Xr ELF 3
|
||||
API set.
|
||||
.Sh ERRORS
|
||||
This function can fail with the following errors:
|
||||
.Bl -tag -width "[ELF_E_ARGUMENT]"
|
||||
.It Bq Er ELF_E_ARGUMENT
|
||||
The argument
|
||||
.Fa elf
|
||||
was
|
||||
.Dv NULL .
|
||||
.It Bq Er ELF_E_ARGUMENT
|
||||
The underlying object referenced by the descriptor
|
||||
.Fa elf
|
||||
was not an ELF object.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr elf 3 ,
|
||||
.Xr elf_begin 3 ,
|
||||
.Xr elf_errno 3 ,
|
||||
.Xr elf_version 3
|
|
@ -0,0 +1,48 @@
|
|||
/* $NetBSD: elf_getversion.c,v 1.1.1.1 2024/03/03 14:41:47 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2021 Joseph Koshy
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <libelf.h>
|
||||
|
||||
#include "_libelf.h"
|
||||
|
||||
ELFTC_VCSID("Id: elf_getversion.c 3977 2022-05-01 06:45:34Z jkoshy");
|
||||
|
||||
__RCSID("$NetBSD: elf_getversion.c,v 1.1.1.1 2024/03/03 14:41:47 christos Exp $");
|
||||
|
||||
unsigned int
|
||||
elf_getversion(Elf *e)
|
||||
{
|
||||
if (e == NULL || e->e_kind != ELF_K_ELF) {
|
||||
LIBELF_SET_ERROR(ARGUMENT, 0);
|
||||
return (EV_NONE);
|
||||
}
|
||||
|
||||
return (e->e_version);
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
/* $NetBSD: libelf_elfmachine.c,v 1.1.1.1 2024/03/03 14:41:47 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2018 Joseph Koshy
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <libelf.h>
|
||||
|
||||
#include "_libelf.h"
|
||||
|
||||
ELFTC_VCSID("Id: libelf_elfmachine.c 3977 2022-05-01 06:45:34Z jkoshy");
|
||||
|
||||
__RCSID("$NetBSD: libelf_elfmachine.c,v 1.1.1.1 2024/03/03 14:41:47 christos Exp $");
|
||||
|
||||
/*
|
||||
* A convenience helper that returns the ELF machine architecture for
|
||||
* a ELF descriptor.
|
||||
*/
|
||||
int
|
||||
_libelf_elfmachine(Elf *e)
|
||||
{
|
||||
Elf32_Ehdr *eh32;
|
||||
Elf64_Ehdr *eh64;
|
||||
|
||||
if (!e)
|
||||
return EM_NONE;
|
||||
|
||||
assert(e->e_kind == ELF_K_ELF);
|
||||
assert(e->e_class != ELFCLASSNONE);
|
||||
|
||||
eh32 = NULL;
|
||||
eh64 = NULL;
|
||||
|
||||
switch (e->e_class) {
|
||||
case ELFCLASS32:
|
||||
eh32 = e->e_u.e_elf.e_ehdr.e_ehdr32;
|
||||
return eh32 ? eh32->e_machine : EM_NONE;
|
||||
case ELFCLASS64:
|
||||
eh64 = e->e_u.e_elf.e_ehdr.e_ehdr64;
|
||||
return eh64 ? eh64->e_machine : EM_NONE;
|
||||
}
|
||||
|
||||
return (EM_NONE);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
# Enable additional warnings.
|
||||
CFLAGS+= -Wa,--fatal-warnings
|
||||
CFLAGS+= -Wall
|
||||
CFLAGS+= -Wcast-align
|
||||
CFLAGS+= -Wcast-qual
|
||||
CFLAGS+= -Wchar-subscripts
|
||||
CFLAGS+= -Wconversion
|
||||
CFLAGS+= -Werror
|
||||
CFLAGS+= -Wextra
|
||||
CFLAGS+= -Wformat=2
|
||||
CFLAGS+= -Winline
|
||||
CFLAGS+= -Wmissing-prototypes
|
||||
CFLAGS+= -Wnested-externs
|
||||
CFLAGS+= -Wempty-body
|
||||
CFLAGS+= -Wformat-y2k
|
||||
CFLAGS+= -Wformat-zero-length
|
||||
CFLAGS+= -Wpointer-sign
|
||||
CFLAGS+= -Wpointer-to-int-cast
|
||||
CFLAGS+= -Wsign-compare
|
||||
CFLAGS+= -Wunused-const-variable
|
||||
CFLAGS+= -Wunused-parameter
|
||||
CFLAGS+= -Wold-style-definition
|
||||
CFLAGS+= -Wpointer-arith
|
||||
CFLAGS+= -Wredundant-decls
|
||||
CFLAGS+= -Wreturn-type
|
||||
CFLAGS+= -Wshadow
|
||||
CFLAGS+= -Wstrict-prototypes
|
||||
CFLAGS+= -Wstrict-overflow
|
||||
CFLAGS+= -Wswitch
|
||||
CFLAGS+= -Wunused-parameter
|
||||
CFLAGS+= -Wwrite-strings
|
Loading…
Reference in New Issue