sync
This commit is contained in:
parent
f609457dcf
commit
62073e0295
318 changed files with 8112 additions and 4346 deletions
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# $OpenBSD: acme-client.conf,v 1.4 2020/09/17 09:13:06 florian Exp $
|
||||
# $OpenBSD: acme-client.conf,v 1.5 2023/05/10 07:34:57 tb Exp $
|
||||
#
|
||||
authority letsencrypt {
|
||||
api url "https://acme-v02.api.letsencrypt.org/directory"
|
||||
|
@ -27,5 +27,7 @@ domain example.com {
|
|||
alternative names { secure.example.com }
|
||||
domain key "/etc/ssl/private/example.com.key"
|
||||
domain full chain certificate "/etc/ssl/example.com.fullchain.pem"
|
||||
# Test with the staging server to avoid aggressive rate-limiting.
|
||||
#sign with letsencrypt-staging
|
||||
sign with letsencrypt
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
From purplerain@secbsd.org Tue May 2 00:00:00 UTC 2023
|
||||
From purplerain@secbsd.org Sat May 13 00:00:00 UTC 2023
|
||||
Return-Path: root
|
||||
Date: May 2 00:00:00 UTC 2023
|
||||
Date: May 13 00:00:00 UTC 2023
|
||||
From: purplerain@secbsd.org (Purple Rain)
|
||||
To: root
|
||||
Subject: Welcome to SecBSD 1.3!
|
||||
|
|
|
@ -1 +1 @@
|
|||
# SecBSD 1.3-8bfda6e: Mon May 2 00:00:00 UTC 2023 (Quetzalcoatl)
|
||||
# SecBSD 1.3-025fffe: Sat May 13 00:00:00 UTC 2023 (Quetzalcoatl)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: tutor.c,v 1.9 2017/01/20 01:12:44 krw Exp $ */
|
||||
/* $OpenBSD: tutor.c,v 1.10 2023/05/05 10:26:50 tb Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1980, 1993
|
||||
|
@ -146,8 +146,7 @@ clrest(void)
|
|||
}
|
||||
|
||||
int
|
||||
brdeq(b1, b2)
|
||||
const int *b1, *b2;
|
||||
brdeq(const int *b1, const int *b2)
|
||||
{
|
||||
const int *e;
|
||||
|
||||
|
|
215
gnu/gcc/gcc/config/arm/secbsd.h
Normal file
215
gnu/gcc/gcc/config/arm/secbsd.h
Normal file
|
@ -0,0 +1,215 @@
|
|||
/* Definitions of target machine for GNU compiler, OpenBSD/arm ELF version.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by Wasabi Systems, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Run-time Target Specification. */
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fputs (" (OpenBSD/arm)", stderr);
|
||||
|
||||
/* This is used in ASM_FILE_START. */
|
||||
#undef ARM_OS_NAME
|
||||
#define ARM_OS_NAME "OpenBSD"
|
||||
|
||||
/* Unsigned chars produces much better code than signed. */
|
||||
#define DEFAULT_SIGNED_CHAR 0
|
||||
|
||||
|
||||
/* This defaults us to little-endian. */
|
||||
#ifndef TARGET_ENDIAN_DEFAULT
|
||||
#define TARGET_ENDIAN_DEFAULT 0
|
||||
#endif
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
|
||||
/* armv6k default cpu. */
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_mpcore
|
||||
|
||||
/* We default to a soft-float ABI so that binaries can run on all
|
||||
target hardware. */
|
||||
#undef TARGET_DEFAULT_FLOAT_ABI
|
||||
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
|
||||
|
||||
/* We default to the "aapcs-linux" ABI so that enums are int-sized by
|
||||
default. */
|
||||
#undef ARM_DEFAULT_ABI
|
||||
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \
|
||||
OPENBSD_OS_CPP_BUILTINS_ELF(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef SUBTARGET_CPP_SPEC
|
||||
#define SUBTARGET_CPP_SPEC OBSD_CPP_SPEC
|
||||
|
||||
/* OBSD_LINK_SPEC appropriate for OpenBSD. Support for GCC options
|
||||
-static, -assert, and -nostdlib. */
|
||||
#undef OBSD_LINK_SPEC
|
||||
#ifdef OBSD_NO_DYNAMIC_LIBRARIES
|
||||
#define OBSD_LINK_SPEC \
|
||||
"%{!nostdlib:%{!r*:%{!e*:-e __start}}} %{assert*}"
|
||||
#else
|
||||
#define OBSD_LINK_SPEC \
|
||||
"%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
|
||||
%{shared:-shared} %{R*} \
|
||||
%{static:-Bstatic} \
|
||||
%{!static:-Bdynamic} \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{assert*} \
|
||||
%{!static:%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}} \
|
||||
%{!nostdlib:-L/usr/lib}"
|
||||
#endif
|
||||
|
||||
#undef SUBTARGET_EXTRA_ASM_SPEC
|
||||
#define SUBTARGET_EXTRA_ASM_SPEC \
|
||||
"%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=4} %{fpic|fPIC|fpie|fPIE:-k}"
|
||||
|
||||
/* Default floating point model is soft-VFP.
|
||||
FIXME: -mhard-float currently implies FPA. */
|
||||
#undef SUBTARGET_ASM_FLOAT_SPEC
|
||||
#define SUBTARGET_ASM_FLOAT_SPEC \
|
||||
"%{mhard-float:-mfpu=fpa} \
|
||||
%{msoft-float:-mfpu=softvfp} \
|
||||
%{!mhard-float: \
|
||||
%{!msoft-float:-mfpu=softvfp}}"
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "subtarget_extra_asm_spec", SUBTARGET_EXTRA_ASM_SPEC }, \
|
||||
{ "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
|
||||
{ "openbsd_link_spec", OBSD_LINK_SPEC }, \
|
||||
{ "openbsd_entry_point", OPENBSD_ENTRY_POINT },
|
||||
|
||||
#define OPENBSD_ENTRY_POINT "__start"
|
||||
|
||||
/* Pass -X to the linker so that it will strip symbols starting with 'L' */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"-X %{mbig-endian:-EB} %{mlittle-endian:-EL} \
|
||||
%(openbsd_link_spec)"
|
||||
|
||||
/* Make GCC agree with <machine/_types.h>. */
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#undef INTMAX_TYPE
|
||||
#define INTMAX_TYPE "long long int"
|
||||
|
||||
#undef UINTMAX_TYPE
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* We don't have any limit on the length as out debugger is GDB. */
|
||||
#undef DBX_CONTIN_LENGTH
|
||||
|
||||
/* OpenBSD and NetBSD do their profiling differently to the Acorn compiler. We
|
||||
don't need a word following the mcount call; and to skip it
|
||||
requires either an assembly stub or use of fomit-frame-pointer when
|
||||
compiling the profiling functions. Since we break Acorn CC
|
||||
compatibility below a little more won't hurt. */
|
||||
|
||||
#undef ARM_FUNCTION_PROFILER
|
||||
#define ARM_FUNCTION_PROFILER(STREAM,LABELNO) \
|
||||
{ \
|
||||
asm_fprintf (STREAM, "\tmov\t%Rip, %Rlr\n"); \
|
||||
asm_fprintf (STREAM, "\tbl\t__mcount%s\n", \
|
||||
NEED_PLT_RELOC ? "(PLT)" : ""); \
|
||||
}
|
||||
|
||||
/* On the ARM `@' introduces a comment, so we must use something else
|
||||
for .type directives. */
|
||||
#undef TYPE_OPERAND_FMT
|
||||
#define TYPE_OPERAND_FMT "%%%s"
|
||||
|
||||
#undef FPUTYPE_DEFAULT
|
||||
#define FPUTYPE_DEFAULT FPUTYPE_VFP
|
||||
|
||||
/* VERY BIG NOTE: Change of structure alignment for OpenBSD|NetBSD/arm.
|
||||
There are consequences you should be aware of...
|
||||
|
||||
Normally GCC/arm uses a structure alignment of 32 for compatibility
|
||||
with armcc. This means that structures are padded to a word
|
||||
boundary. However this causes problems with bugged OpenBSD|NetBSD kernel
|
||||
code (possibly userland code as well - I have not checked every
|
||||
binary). The nature of this bugged code is to rely on sizeof()
|
||||
returning the correct size of various structures rounded to the
|
||||
nearest byte (SCSI and ether code are two examples, the vm system
|
||||
is another). This code breaks when the structure alignment is 32
|
||||
as sizeof() will report a word=rounded size. By changing the
|
||||
structure alignment to 8. GCC will conform to what is expected by
|
||||
OpenBSD|NetBSD.
|
||||
|
||||
This has several side effects that should be considered.
|
||||
1. Structures will only be aligned to the size of the largest member.
|
||||
i.e. structures containing only bytes will be byte aligned.
|
||||
structures containing shorts will be half word alinged.
|
||||
structures containing ints will be word aligned.
|
||||
|
||||
This means structures should be padded to a word boundary if
|
||||
alignment of 32 is required for byte structures etc.
|
||||
|
||||
2. A potential performance penalty may exist if strings are no longer
|
||||
word aligned. GCC will not be able to use word load/stores to copy
|
||||
short strings.
|
||||
|
||||
This modification is not encouraged but with the present state of the
|
||||
OpenBSD|NetBSD source tree it is currently the only solution that meets the
|
||||
requirements. */
|
||||
|
||||
#undef DEFAULT_STRUCTURE_SIZE_BOUNDARY
|
||||
#define DEFAULT_STRUCTURE_SIZE_BOUNDARY 8
|
||||
|
||||
/* Clear the instruction cache from `BEG' to `END'. This makes a
|
||||
call to the ARM_SYNC_ICACHE architecture specific syscall. */
|
||||
#define CLEAR_INSN_CACHE(BEG, END) \
|
||||
do \
|
||||
{ \
|
||||
extern int sysarch(int number, void *args); \
|
||||
struct { \
|
||||
unsigned int addr; \
|
||||
int len; \
|
||||
} s; \
|
||||
s.addr = (unsigned int)(BEG); \
|
||||
s.len = (END) - (BEG); \
|
||||
(void) sysarch (0, &s); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* As an elf system, we need crtbegin/crtend stuff. */
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "\
|
||||
%{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} \
|
||||
%{!p:%{!static:crt0%O%s} %{static:%{nopie:crt0%O%s} \
|
||||
%{!nopie:rcrt0%O%s}}}} \
|
||||
crtbegin%O%s} %{shared:crtbeginS%O%s}"
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
|
61
gnu/gcc/gcc/config/arm/secbsd1.h
Normal file
61
gnu/gcc/gcc/config/arm/secbsd1.h
Normal file
|
@ -0,0 +1,61 @@
|
|||
/* Definitions of target machine for GNU compiler, SecBSD/arm ELF version.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by Wasabi Systems, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define SBSD_HAS_DECLARE_FUNCTION_NAME
|
||||
#define SBSD_HAS_DECLARE_FUNCTION_SIZE
|
||||
|
||||
/* use EABI frame unwinding tables. */
|
||||
#define TARGET_UNWIND_INFO 1
|
||||
|
||||
#if defined (__thumb__)
|
||||
#define RENAME_LIBRARY_SET ".thumb_set"
|
||||
#else
|
||||
#define RENAME_LIBRARY_SET ".set"
|
||||
#endif
|
||||
|
||||
/* Make __aeabi_AEABI_NAME an alias for __GCC_NAME. */
|
||||
#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
|
||||
__asm__ (".globl\t__aeabi_" #AEABI_NAME "\n" \
|
||||
RENAME_LIBRARY_SET "\t__aeabi_" #AEABI_NAME \
|
||||
", __" #GCC_NAME "\n");
|
||||
|
||||
/* Give some libgcc functions an additional __aeabi name. */
|
||||
#ifdef L_muldi3
|
||||
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, lmul)
|
||||
#endif
|
||||
#ifdef L_fixdfdi
|
||||
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, d2lz)
|
||||
#endif
|
||||
#ifdef L_fixunsdfdi
|
||||
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, d2ulz)
|
||||
#endif
|
||||
#ifdef L_fixsfdi
|
||||
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, f2lz)
|
||||
#endif
|
||||
#ifdef L_fixunssfdi
|
||||
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, f2ulz)
|
||||
#endif
|
||||
#ifdef L_floatdidf
|
||||
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, l2d)
|
||||
#endif
|
||||
#ifdef L_floatdisf
|
||||
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, l2f)
|
||||
#endif
|
|
@ -225,7 +225,8 @@ extern "C" {
|
|||
if (!tmp)
|
||||
return 0;
|
||||
|
||||
#if defined(linux) || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
#if defined(linux) || defined(__NetBSD__) || defined(__OpenBSD__) || \
|
||||
defined(__SecBSD__)
|
||||
/* Pc-relative indirect. */
|
||||
tmp += ptr;
|
||||
tmp = *(_Unwind_Word *) tmp;
|
||||
|
|
107
gnu/gcc/gcc/config/host-secbsd.c
Normal file
107
gnu/gcc/gcc/config/host-secbsd.c
Normal file
|
@ -0,0 +1,107 @@
|
|||
/* SecBSD host-specific hook definitions.
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 2, or (at your
|
||||
option) any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston,
|
||||
MA 02111-1307, USA. */
|
||||
|
||||
#include <limits.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "hosthooks.h"
|
||||
#include "hosthooks-def.h"
|
||||
|
||||
#undef HOST_HOOKS_GT_PCH_GET_ADDRESS
|
||||
#define HOST_HOOKS_GT_PCH_GET_ADDRESS openbsd_gt_pch_get_address
|
||||
|
||||
#undef HOST_HOOKS_GT_PCH_USE_ADDRESS
|
||||
#define HOST_HOOKS_GT_PCH_USE_ADDRESS openbsd_gt_pch_use_address
|
||||
|
||||
/* Return the address of the PCH address space, if the PCH will fit in it. */
|
||||
|
||||
void *
|
||||
openbsd_gt_pch_get_address (size_t size, int fd ATTRIBUTE_UNUSED)
|
||||
{
|
||||
void *base, *addr;
|
||||
size_t pgsz;
|
||||
|
||||
if (size > INT_MAX)
|
||||
return NULL;
|
||||
|
||||
pgsz = sysconf(_SC_PAGESIZE);
|
||||
if (pgsz == (size_t)-1)
|
||||
return NULL;
|
||||
|
||||
base = sbrk(0);
|
||||
|
||||
/* round up to nearest page */
|
||||
base = (void *)(((long)base + (pgsz - 1)) & ~(pgsz - 1));
|
||||
if (brk(base) != 0)
|
||||
return NULL;
|
||||
|
||||
/* attempt to allocate size */
|
||||
addr = sbrk(size);
|
||||
if (addr == (void *)-1)
|
||||
return NULL;
|
||||
|
||||
/* deallocate the memory */
|
||||
if (brk(base) != 0)
|
||||
return NULL;
|
||||
|
||||
/* confirm addr is as expected */
|
||||
if (addr != base)
|
||||
return NULL;
|
||||
|
||||
return base;
|
||||
}
|
||||
|
||||
/* Return 0 if we can reserve the PCH address space. */
|
||||
|
||||
int
|
||||
openbsd_gt_pch_use_address (void *base, size_t size, int fd ATTRIBUTE_UNUSED, size_t off ATTRIBUTE_UNUSED)
|
||||
{
|
||||
void *addr;
|
||||
|
||||
if (size == 0)
|
||||
return -1;
|
||||
|
||||
/* sanity check base address */
|
||||
addr = sbrk(0);
|
||||
if (addr == (void *)-1 || base < addr)
|
||||
return -1;
|
||||
|
||||
/* set base for sbrk */
|
||||
if (brk(base) != 0)
|
||||
return -1;
|
||||
|
||||
/* attempt to get the memory */
|
||||
addr = sbrk(size);
|
||||
if (addr == (void *)-1)
|
||||
return -1;
|
||||
|
||||
/* sanity check the result */
|
||||
if (addr != base) {
|
||||
brk(base);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
|
102
gnu/gcc/gcc/config/i386/secbsd.h
Normal file
102
gnu/gcc/gcc/config/i386/secbsd.h
Normal file
|
@ -0,0 +1,102 @@
|
|||
/* Configuration for an SecBSD i386 target.
|
||||
Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
|
||||
#define TARGET_VERSION fprintf (stderr, " (SecBSD/i386)");
|
||||
|
||||
/* This goes away when the math-emulator is fixed */
|
||||
#undef TARGET_SUBTARGET_DEFAULT
|
||||
#define TARGET_SUBTARGET_DEFAULT \
|
||||
(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("__unix__"); \
|
||||
builtin_define ("__SecBSD__"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=bsd"); \
|
||||
builtin_assert ("system=SecBSD"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Layout of source language data types. */
|
||||
|
||||
/* This must agree with <machine/ansi.h> */
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* Assembler format: overall framework. */
|
||||
|
||||
#undef ASM_APP_ON
|
||||
#define ASM_APP_ON "#APP\n"
|
||||
|
||||
#undef ASM_APP_OFF
|
||||
#define ASM_APP_OFF "#NO_APP\n"
|
||||
|
||||
/* Stack & calling: aggregate returns. */
|
||||
|
||||
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
|
||||
we want to retain compatibility with older gcc versions. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Kludgy test: when gas is upgraded, it will have p2align, and no problems
|
||||
with nops. */
|
||||
#ifndef HAVE_GAS_MAX_SKIP_P2ALIGN
|
||||
/* i386 SecBSD still uses an older gas that doesn't insert nops by default
|
||||
when the .align directive demands to insert extra space in the text
|
||||
segment. */
|
||||
#undef ASM_OUTPUT_ALIGN
|
||||
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
|
||||
if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
|
||||
#endif
|
||||
|
||||
/* Stack & calling: profiling. */
|
||||
|
||||
/* SecBSD's profiler recovers all information from the stack pointer.
|
||||
The icky part is not here, but in machine/profile.h. */
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fputs (flag_pic ? "\tcall mcount@PLT\n": "\tcall mcount\n", FILE);
|
||||
|
||||
/* Assembler format: exception region output. */
|
||||
|
||||
/* All configurations that don't use elf must be explicit about not using
|
||||
dwarf unwind information. */
|
||||
#define DWARF2_UNWIND_INFO 0
|
||||
|
||||
#undef ASM_PREFERRED_EH_DATA_FORMAT
|
||||
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START ";#"
|
||||
|
||||
/* SecBSD gas currently does not support quad, so do not use it. */
|
||||
#undef ASM_QUAD
|
130
gnu/gcc/gcc/config/i386/secbsd64.h
Normal file
130
gnu/gcc/gcc/config/i386/secbsd64.h
Normal file
|
@ -0,0 +1,130 @@
|
|||
/* Configuration for an SecBSD x86-64 target.
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (SecBSD/x86-64 ELF)")
|
||||
|
||||
/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
|
||||
libraries compiled with the native cc, so undef it. */
|
||||
#undef NO_DOLLAR_IN_LABEL
|
||||
|
||||
/* Override the default comment-starter of "/". */
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
/* Run-time target specifications */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS_ELF(); \
|
||||
if (TARGET_64BIT) \
|
||||
SECBSD_OS_CPP_BUILTINS_LP64(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* As an elf system, we need crtbegin/crtend stuff. */
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "\
|
||||
%{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} \
|
||||
%{!p:%{!static:crt0%O%s} %{static:%{nopie:crt0%O%s} \
|
||||
%{!nopie:rcrt0%O%s}}}} crtbegin%O%s} %{shared:crtbeginS%O%s}"
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
|
||||
|
||||
/* Layout of source language data types. */
|
||||
|
||||
/* This must agree with <machine/_types.h> */
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
#undef INTMAX_TYPE
|
||||
#define INTMAX_TYPE "long long int"
|
||||
|
||||
#undef UINTMAX_TYPE
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
/* Assembler format: overall framework. */
|
||||
|
||||
#undef ASM_APP_ON
|
||||
#define ASM_APP_ON "#APP\n"
|
||||
|
||||
#undef ASM_APP_OFF
|
||||
#define ASM_APP_OFF "#NO_APP\n"
|
||||
|
||||
#undef SET_ASM_OP
|
||||
#define SET_ASM_OP "\t.set\t"
|
||||
|
||||
/* The following macros were originally stolen from i386v4.h.
|
||||
These have to be defined to get PIC code correct. */
|
||||
|
||||
/* Assembler format: dispatch tables. */
|
||||
|
||||
/* Assembler format: sections. */
|
||||
|
||||
/* Stack & calling: aggregate returns. */
|
||||
|
||||
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
|
||||
we want to retain compatibility with older gcc versions. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Stack & calling: profiling. */
|
||||
|
||||
/* SecBSD's profiler recovers all information from the stack pointer.
|
||||
The icky part is not here, but in machine/profile.h. */
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE);
|
||||
|
||||
/* Assembler format: exception region output. */
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
|
||||
%{shared:-shared} %{R*} \
|
||||
%{static:-Bstatic} \
|
||||
%{!static:-Bdynamic} \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{assert*} \
|
||||
%{!static:%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}} \
|
||||
%{!nostdlib:-L/usr/lib}"
|
||||
|
||||
#define SBSD_HAS_CORRECT_SPECS
|
||||
|
||||
#undef JUMP_TABLES_IN_TEXT_SECTION
|
||||
#define JUMP_TABLES_IN_TEXT_SECTION 0
|
132
gnu/gcc/gcc/config/i386/secbsdelf.h
Normal file
132
gnu/gcc/gcc/config/i386/secbsdelf.h
Normal file
|
@ -0,0 +1,132 @@
|
|||
/* Configuration for an SecBSD i386 target.
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
|
||||
libraries compiled with the native cc, so undef it. */
|
||||
#undef NO_DOLLAR_IN_LABEL
|
||||
|
||||
/* Override the default comment-starter of "/". */
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
#undef DBX_REGISTER_NUMBER
|
||||
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
|
||||
|
||||
/* This goes away when the math-emulator is fixed */
|
||||
#undef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT \
|
||||
(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
|
||||
|
||||
/* Run-time target specifications */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* As an elf system, we need crtbegin/crtend stuff. */
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "\
|
||||
%{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} \
|
||||
%{!p:%{!static:crt0%O%s} %{static:%{nopie:crt0%O%s} \
|
||||
%{!nopie:rcrt0%O%s}}}} crtbegin%O%s} %{shared:crtbeginS%O%s}"
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
|
||||
|
||||
/* Layout of source language data types. */
|
||||
|
||||
/* This must agree with <machine/ansi.h> */
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
|
||||
/* Assembler format: overall framework. */
|
||||
|
||||
#undef ASM_APP_ON
|
||||
#define ASM_APP_ON "#APP\n"
|
||||
|
||||
#undef ASM_APP_OFF
|
||||
#define ASM_APP_OFF "#NO_APP\n"
|
||||
|
||||
#undef SET_ASM_OP
|
||||
#define SET_ASM_OP "\t.set\t"
|
||||
|
||||
/* The following macros were originally stolen from i386v4.h.
|
||||
These have to be defined to get PIC code correct. */
|
||||
|
||||
/* Assembler format: dispatch tables. */
|
||||
|
||||
/* Assembler format: sections. */
|
||||
|
||||
/* Stack & calling: aggregate returns. */
|
||||
|
||||
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
|
||||
we want to retain compatibility with older gcc versions. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
|
||||
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
|
||||
if ((LOG) != 0) {\
|
||||
if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
|
||||
else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Stack & calling: profiling. */
|
||||
|
||||
/* SecBSD's profiler recovers all information from the stack pointer.
|
||||
The icky part is not here, but in machine/profile.h. */
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE);
|
||||
|
||||
/* Assembler format: exception region output. */
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
|
||||
%{shared:-shared} %{R*} \
|
||||
%{static:-Bstatic} \
|
||||
%{!static:-Bdynamic} \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{assert*} \
|
||||
%{!static:%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}} \
|
||||
%{!nostdlib:-L/usr/lib}"
|
||||
|
||||
#define SBSD_HAS_CORRECT_SPECS
|
6
gnu/gcc/gcc/config/i386/t-secbsd
Normal file
6
gnu/gcc/gcc/config/i386/t-secbsd
Normal file
|
@ -0,0 +1,6 @@
|
|||
# gdb gets confused if pic code is linked with non pic
|
||||
# We cope by building variants of libgcc.
|
||||
MULTILIB_OPTIONS = fpic
|
||||
MULTILIB_MATCHES=fpic=fPIC
|
||||
LIBGCC = stmp-multilib
|
||||
INSTALL_LIBGCC = install-multilib
|
19
gnu/gcc/gcc/config/ia64/secbsd.h
Normal file
19
gnu/gcc/gcc/config/ia64/secbsd.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* Definitions for ia64-linux target. */
|
||||
|
||||
/* This macro is a C statement to print on `stderr' a string describing the
|
||||
particular machine description choice. */
|
||||
|
||||
#define TARGET_VERSION fprintf (stderr, " (SecBSD/ia64)");
|
||||
|
||||
/* Target OS builtins. */
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("__unix__"); \
|
||||
builtin_define ("__SecBSD__"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=bsd"); \
|
||||
builtin_assert ("system=SecBSD"); \
|
||||
} \
|
||||
while (0)
|
||||
|
23
gnu/gcc/gcc/config/secbsd-libpthread.h
Normal file
23
gnu/gcc/gcc/config/secbsd-libpthread.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* LIB_SPEC appropriate for SecBSD. Include -lpthread if -pthread is
|
||||
specified on the command line. */
|
||||
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define SBSD_LIB_SPEC "%{pthread:-lpthread%{!shared:%{p|pg:_p}}} %{!shared:-lc%{p|pg:_p}}"
|
||||
|
23
gnu/gcc/gcc/config/secbsd-oldgas.h
Normal file
23
gnu/gcc/gcc/config/secbsd-oldgas.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* Generic settings for a.out SecBSD systems.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by David E. O'Brien <obrien@FreeBSD.org>.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
|
||||
#define SBSD_OLD_GAS
|
357
gnu/gcc/gcc/config/secbsd.h
Normal file
357
gnu/gcc/gcc/config/secbsd.h
Normal file
|
@ -0,0 +1,357 @@
|
|||
/* Base configuration file for all SecBSD targets.
|
||||
Copyright (C) 1999, 2000, 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Common SecBSD configuration.
|
||||
All SecBSD architectures include this file, which is intended as
|
||||
a repository for common defines.
|
||||
|
||||
Some defines are common to all architectures, a few of them are
|
||||
triggered by SBSD_* guards, so that we won't override architecture
|
||||
defaults by mistakes.
|
||||
|
||||
SBSD_HAS_CORRECT_SPECS:
|
||||
another mechanism provides correct specs already.
|
||||
SBSD_NO_DYNAMIC_LIBRARIES:
|
||||
no implementation of dynamic libraries.
|
||||
SBSD_OLD_GAS:
|
||||
older flavor of gas which needs help for PIC.
|
||||
SBSD_HAS_DECLARE_FUNCTION_NAME, SBSD_HAS_DECLARE_FUNCTION_SIZE,
|
||||
SBSD_HAS_DECLARE_OBJECT:
|
||||
PIC support, FUNCTION_NAME/FUNCTION_SIZE are independent, whereas
|
||||
the corresponding logic for OBJECTS is necessarily coupled.
|
||||
|
||||
There are also a few `default' defines such as ASM_WEAKEN_LABEL,
|
||||
intended as common ground for arch that don't provide
|
||||
anything suitable. */
|
||||
|
||||
/* SECBSD_NATIVE is defined only when gcc is configured as part of
|
||||
the SecBSD source tree, specifically through Makefile.bsd-wrapper.
|
||||
|
||||
In such a case the include path can be trimmed as there is no
|
||||
distinction between system includes and gcc includes. */
|
||||
|
||||
/* This configuration method, namely Makefile.bsd-wrapper and
|
||||
SECBSD_NATIVE is NOT recommended for building cross-compilers. */
|
||||
|
||||
#ifdef SECBSD_NATIVE
|
||||
|
||||
/* The compiler is configured with ONLY the gcc/g++ standard headers. */
|
||||
#undef INCLUDE_DEFAULTS
|
||||
#ifdef CROSS_COMPILE
|
||||
#define INCLUDE_DEFAULTS \
|
||||
{ \
|
||||
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
|
||||
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1 }, \
|
||||
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1 }, \
|
||||
{ GPLUSPLUS_INCLUDE_DIR "/..", STANDARD_INCLUDE_COMPONENT, 0, 0 }, \
|
||||
{ 0, 0, 0, 0 } \
|
||||
}
|
||||
#else
|
||||
#define INCLUDE_DEFAULTS \
|
||||
{ \
|
||||
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
|
||||
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1 }, \
|
||||
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1 }, \
|
||||
{ STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0 }, \
|
||||
{ 0, 0, 0, 0 } \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Under SecBSD, the normal location of the various *crt*.o files is the
|
||||
/usr/lib directory. */
|
||||
#undef STANDARD_STARTFILE_PREFIX
|
||||
#define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
|
||||
|
||||
#endif
|
||||
|
||||
/* Controlling the compilation driver. */
|
||||
/* TARGET_OS_CPP_BUILTINS() common to all SecBSD targets. */
|
||||
#define SECBSD_OS_CPP_BUILTINS_COMMON() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("__SecBSD__"); \
|
||||
builtin_define ("__unix__"); \
|
||||
builtin_define ("__ANSI_COMPAT"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=bsd"); \
|
||||
builtin_assert ("system=SecBSD"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* TARGET_OS_CPP_BUILTINS() common to all SecBSD ELF targets. */
|
||||
#define SECBSD_OS_CPP_BUILTINS_ELF() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS_COMMON(); \
|
||||
builtin_define ("__ELF__"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* TARGET_OS_CPP_BUILTINS() common to all LP64 SecBSD targets. */
|
||||
#define SECBSD_OS_CPP_BUILTINS_LP64() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("_LP64"); \
|
||||
builtin_define ("__LP64__"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* XXX old stuff TARGET_OS_CPP_BUILTINS() common to all SecBSD targets. */
|
||||
#define SECBSD_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("__SecBSD__"); \
|
||||
builtin_define ("__unix__"); \
|
||||
builtin_define ("__ANSI_COMPAT"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=bsd"); \
|
||||
builtin_assert ("system=SecBSD"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* CPP_SPEC appropriate for SecBSD. We deal with -posix and -pthread.
|
||||
XXX the way threads are handled currently is not very satisfying,
|
||||
since all code must be compiled with -pthread to work.
|
||||
This two-stage defines makes it easy to pick that for targets that
|
||||
have subspecs. */
|
||||
#ifdef CPP_CPU_SPEC
|
||||
#define SBSD_CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
#else
|
||||
#define SBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
#endif
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC SBSD_LIB_SPEC
|
||||
|
||||
#ifndef SBSD_HAS_CORRECT_SPECS
|
||||
|
||||
#ifndef SBSD_NO_DYNAMIC_LIBRARIES
|
||||
#undef SWITCH_TAKES_ARG
|
||||
#define SWITCH_TAKES_ARG(CHAR) \
|
||||
(DEFAULT_SWITCH_TAKES_ARG (CHAR) \
|
||||
|| (CHAR) == 'R')
|
||||
#endif
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC SBSD_CPP_SPEC
|
||||
|
||||
#ifdef SBSD_OLD_GAS
|
||||
/* ASM_SPEC appropriate for SecBSD. For some architectures, SecBSD
|
||||
still uses a special flavor of gas that needs to be told when generating
|
||||
pic code. */
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "%{fpic|fpie:-k} %{fPIC|fPIE:-k -K}"
|
||||
#endif
|
||||
|
||||
/* Since we use gas, stdin -> - is a good idea. */
|
||||
#define AS_NEEDS_DASH_FOR_PIPED_INPUT
|
||||
|
||||
/* LINK_SPEC appropriate for SecBSD. Support for GCC options
|
||||
-static, -assert, and -nostdlib. */
|
||||
#undef LINK_SPEC
|
||||
#ifdef SBSD_NO_DYNAMIC_LIBRARIES
|
||||
#define LINK_SPEC \
|
||||
"%{g:%{!nostdlib:-L/usr/lib/debug}} %{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{assert*}"
|
||||
#else
|
||||
#define LINK_SPEC \
|
||||
"%{g:%{!nostdlib:-L/usr/lib/debug}} %{!shared:%{!nostdlib:%{!r*:%{!e*:-e start}}}} %{shared:-Bshareable -x} -dc -dp %{R*} %{static:-Bstatic} %{assert*}"
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||||
#endif
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC SBSD_LIB_SPEC
|
||||
#endif
|
||||
|
||||
|
||||
/* Runtime target specification. */
|
||||
|
||||
/* Miscellaneous parameters. */
|
||||
|
||||
/* Controlling debugging info: dbx options. */
|
||||
|
||||
/* Don't use the `xsTAG;' construct in DBX output; SecBSD systems that
|
||||
use DBX don't support it. */
|
||||
#define DBX_NO_XREFS
|
||||
|
||||
|
||||
/* Support of shared libraries, mostly imported from svr4.h through netbsd. */
|
||||
/* Two differences from svr4.h:
|
||||
- we use . - _func instead of a local label,
|
||||
- we put extra spaces in expressions such as
|
||||
.type _func , @function
|
||||
This is more readable for a human being and confuses c++filt less. */
|
||||
|
||||
/* Assembler format: output and generation of labels. */
|
||||
|
||||
/* Define the strings used for the .type and .size directives.
|
||||
These strings generally do not vary from one system running SecBSD
|
||||
to another, but if a given system needs to use different pseudo-op
|
||||
names for these, they may be overridden in the arch specific file. */
|
||||
|
||||
/* SecBSD assembler is hacked to have .type & .size support even in a.out
|
||||
format object files. Functions size are supported but not activated
|
||||
yet (look for GRACE_PERIOD_EXPIRED in gas/config/obj-aout.c).
|
||||
SET_ASM_OP is needed for attribute alias to work. */
|
||||
|
||||
#undef TYPE_ASM_OP
|
||||
#undef SIZE_ASM_OP
|
||||
#undef SET_ASM_OP
|
||||
#undef GLOBAL_ASM_OP
|
||||
|
||||
#define TYPE_ASM_OP "\t.type\t"
|
||||
#define SIZE_ASM_OP "\t.size\t"
|
||||
#define SET_ASM_OP "\t.set\t"
|
||||
#define GLOBAL_ASM_OP "\t.globl\t"
|
||||
|
||||
/* The following macro defines the format used to output the second
|
||||
operand of the .type assembler directive. */
|
||||
#undef TYPE_OPERAND_FMT
|
||||
#define TYPE_OPERAND_FMT "@%s"
|
||||
|
||||
/* Provision if extra assembler code is needed to declare a function's result
|
||||
(taken from svr4, not needed yet actually). */
|
||||
#ifndef ASM_DECLARE_RESULT
|
||||
#define ASM_DECLARE_RESULT(FILE, RESULT)
|
||||
#endif
|
||||
|
||||
/* These macros generate the special .type and .size directives which
|
||||
are used to set the corresponding fields of the linker symbol table
|
||||
entries under SecBSD. These macros also have to output the starting
|
||||
labels for the relevant functions/objects. */
|
||||
|
||||
#ifndef SBSD_HAS_DECLARE_FUNCTION_NAME
|
||||
/* Extra assembler code needed to declare a function properly.
|
||||
Some assemblers may also need to also have something extra said
|
||||
about the function's return value. We allow for that here. */
|
||||
#undef ASM_DECLARE_FUNCTION_NAME
|
||||
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
|
||||
do { \
|
||||
ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
|
||||
ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
|
||||
ASM_OUTPUT_LABEL(FILE, NAME); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef SBSD_HAS_DECLARE_FUNCTION_SIZE
|
||||
/* Declare the size of a function. */
|
||||
#undef ASM_DECLARE_FUNCTION_SIZE
|
||||
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
|
||||
do { \
|
||||
if (!flag_inhibit_size_directive) \
|
||||
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef SBSD_HAS_DECLARE_OBJECT
|
||||
/* Extra assembler code needed to declare an object properly. */
|
||||
#undef ASM_DECLARE_OBJECT_NAME
|
||||
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
|
||||
do { \
|
||||
HOST_WIDE_INT size; \
|
||||
ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
|
||||
size_directive_output = 0; \
|
||||
if (!flag_inhibit_size_directive \
|
||||
&& (DECL) && DECL_SIZE (DECL)) \
|
||||
{ \
|
||||
size_directive_output = 1; \
|
||||
size = int_size_in_bytes (TREE_TYPE (DECL)); \
|
||||
ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \
|
||||
} \
|
||||
ASM_OUTPUT_LABEL (FILE, NAME); \
|
||||
} while (0)
|
||||
|
||||
/* Output the size directive for a decl in rest_of_decl_compilation
|
||||
in the case where we did not do so before the initializer.
|
||||
Once we find the error_mark_node, we know that the value of
|
||||
size_directive_output was set by ASM_DECLARE_OBJECT_NAME
|
||||
when it was run for the same decl. */
|
||||
#undef ASM_FINISH_DECLARE_OBJECT
|
||||
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
|
||||
do { \
|
||||
const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
|
||||
HOST_WIDE_INT size; \
|
||||
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
|
||||
&& ! AT_END && TOP_LEVEL \
|
||||
&& DECL_INITIAL (DECL) == error_mark_node \
|
||||
&& !size_directive_output) \
|
||||
{ \
|
||||
size_directive_output = 1; \
|
||||
size = int_size_in_bytes (TREE_TYPE (DECL)); \
|
||||
ASM_OUTPUT_SIZE_DIRECTIVE (FILE, name, size); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Those are `generic' ways to weaken/globalize a label. We shouldn't need
|
||||
to override a processor specific definition. Hence, #ifndef ASM_*
|
||||
In case overriding turns out to be needed, one can always #undef ASM_*
|
||||
before including this file. */
|
||||
|
||||
/* Tell the assembler that a symbol is weak. */
|
||||
/* Note: netbsd arm32 assembler needs a .globl here. An override may
|
||||
be needed when/if we go for arm32 support. */
|
||||
#ifndef ASM_WEAKEN_LABEL
|
||||
#define ASM_WEAKEN_LABEL(FILE,NAME) \
|
||||
do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
|
||||
fputc ('\n', FILE); } while (0)
|
||||
#endif
|
||||
|
||||
/* Storage layout. */
|
||||
|
||||
|
||||
/* bug work around: we don't want to support #pragma weak, but the current
|
||||
code layout needs HANDLE_PRAGMA_WEAK asserted for __attribute((weak)) to
|
||||
work. On the other hand, we don't define HANDLE_PRAGMA_WEAK directly,
|
||||
as this depends on a few other details as well... */
|
||||
#define HANDLE_SYSV_PRAGMA 1
|
||||
|
||||
/* Define this so we can compile MS code for use with WINE. */
|
||||
#define HANDLE_PRAGMA_PACK_PUSH_POP
|
||||
|
||||
/* Stack is explicitly denied execution rights on SecBSD platforms. */
|
||||
#define ENABLE_EXECUTE_STACK \
|
||||
extern void __enable_execute_stack (void *); \
|
||||
void \
|
||||
__enable_execute_stack (void *addr) \
|
||||
{ \
|
||||
long size = getpagesize (); \
|
||||
long mask = ~(size-1); \
|
||||
char *page = (char *) (((long) addr) & mask); \
|
||||
char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \
|
||||
\
|
||||
if (mprotect (page, end - page, PROT_READ | PROT_WRITE | PROT_EXEC) < 0) \
|
||||
perror ("mprotect of trampoline code"); \
|
||||
}
|
||||
|
||||
/*
|
||||
* Disable the use of unsafe builtin functions, (strcat, strcpy, stpcpy),
|
||||
* making them easier to spot in the object files.
|
||||
*/
|
||||
#define NO_UNSAFE_BUILTINS
|
||||
|
||||
/* The system headers on SecBSD are C++-aware. */
|
||||
#undef NO_IMPLICIT_EXTERN_C
|
||||
#define NO_IMPLICIT_EXTERN_C
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
2
gnu/gcc/gcc/config/t-secbsd
Normal file
2
gnu/gcc/gcc/config/t-secbsd
Normal file
|
@ -0,0 +1,2 @@
|
|||
# We don't need GCC's own include files.
|
||||
USER_H =
|
5
gnu/gcc/gcc/config/t-secbsd-thread
Normal file
5
gnu/gcc/gcc/config/t-secbsd-thread
Normal file
|
@ -0,0 +1,5 @@
|
|||
# This is currently needed to compile libgcc2 for threads support
|
||||
TARGET_LIBGCC2_CFLAGS=-pthread
|
||||
#T_CFLAGS=-pthread
|
||||
#T_CPPFLAGS=-pthread
|
||||
|
|
@ -97,7 +97,7 @@ extern void expandargv PARAMS ((int *, char ***));
|
|||
to find the declaration so provide a fully prototyped one. If it
|
||||
is 1, we found it so don't provide any declaration at all. */
|
||||
#if !HAVE_DECL_BASENAME
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__SecBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
||||
extern char *basename (const char *);
|
||||
#else
|
||||
/* Do not allow basename to be used if there is no prototype seen. We
|
||||
|
|
|
@ -283,7 +283,7 @@ So instead we use the macro below and test it against specific values. */
|
|||
|
||||
/* Attribute `nonnull' was valid as of gcc 3.3. */
|
||||
#ifndef ATTRIBUTE_NONNULL
|
||||
# if (GCC_VERSION >= 3003) || defined(__OpenBSD__)
|
||||
# if (GCC_VERSION >= 3003) || defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
|
||||
# else
|
||||
# define ATTRIBUTE_NONNULL(m)
|
||||
|
@ -345,7 +345,7 @@ So instead we use the macro below and test it against specific values. */
|
|||
|
||||
/* Attribute `sentinel' was valid as of gcc 3.5. */
|
||||
#ifndef ATTRIBUTE_SENTINEL
|
||||
# if (GCC_VERSION >= 3005) || defined(__OpenBSD__)
|
||||
# if (GCC_VERSION >= 3005) || defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
|
||||
# else
|
||||
# define ATTRIBUTE_SENTINEL
|
||||
|
|
|
@ -97,7 +97,7 @@ extern void expandargv PARAMS ((int *, char ***));
|
|||
to find the declaration so provide a fully prototyped one. If it
|
||||
is 1, we found it so don't provide any declaration at all. */
|
||||
#if !HAVE_DECL_BASENAME
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__SecBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
||||
extern char *basename (const char *);
|
||||
#else
|
||||
/* Do not allow basename to be used if there is no prototype seen. We
|
||||
|
|
|
@ -151,7 +151,7 @@ darwin*|macosx*)
|
|||
SHLIB_LIBS='-lSystem'
|
||||
;;
|
||||
|
||||
openbsd*)
|
||||
openbsd* | secbsd*)
|
||||
SHOBJ_CFLAGS=-fPIC
|
||||
SHOBJ_LD='${CC}'
|
||||
SHOBJ_LDFLAGS='-shared'
|
||||
|
|
|
@ -67,7 +67,6 @@ add_clang_library(clangDriver
|
|||
ToolChains/OpenBSD.cpp
|
||||
ToolChains/PS4CPU.cpp
|
||||
ToolChains/RISCVToolchain.cpp
|
||||
ToolChains/SecBSD.cpp
|
||||
ToolChains/Solaris.cpp
|
||||
ToolChains/TCE.cpp
|
||||
ToolChains/VEToolchain.cpp
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
#include "ToolChains/PPCLinux.h"
|
||||
#include "ToolChains/PS4CPU.h"
|
||||
#include "ToolChains/RISCVToolchain.h"
|
||||
#include "ToolChains/SecBSD.h"
|
||||
#include "ToolChains/Solaris.h"
|
||||
#include "ToolChains/TCE.h"
|
||||
#include "ToolChains/VEToolchain.h"
|
||||
|
|
|
@ -1,338 +0,0 @@
|
|||
//===--- SecBSD.cpp - SecBSD ToolChain Implementations --------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "SecBSD.h"
|
||||
#include "Arch/Mips.h"
|
||||
#include "Arch/Sparc.h"
|
||||
#include "CommonArgs.h"
|
||||
#include "clang/Config/config.h"
|
||||
#include "clang/Driver/Compilation.h"
|
||||
#include "clang/Driver/Options.h"
|
||||
#include "clang/Driver/SanitizerArgs.h"
|
||||
#include "llvm/Option/ArgList.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/VirtualFileSystem.h"
|
||||
|
||||
using namespace clang::driver;
|
||||
using namespace clang::driver::tools;
|
||||
using namespace clang::driver::toolchains;
|
||||
using namespace clang;
|
||||
using namespace llvm::opt;
|
||||
|
||||
void secbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
const ArgList &Args,
|
||||
const char *LinkingOutput) const {
|
||||
claimNoWarnArgs(Args);
|
||||
ArgStringList CmdArgs;
|
||||
|
||||
switch (getToolChain().getArch()) {
|
||||
case llvm::Triple::x86:
|
||||
// When building 32-bit code on SecBSD/amd64, we have to explicitly
|
||||
// instruct as in the base system to assemble 32-bit code.
|
||||
CmdArgs.push_back("--32");
|
||||
break;
|
||||
|
||||
case llvm::Triple::ppc:
|
||||
CmdArgs.push_back("-mppc");
|
||||
CmdArgs.push_back("-many");
|
||||
break;
|
||||
|
||||
case llvm::Triple::sparcv9: {
|
||||
CmdArgs.push_back("-64");
|
||||
std::string CPU = getCPUName(Args, getToolChain().getTriple());
|
||||
CmdArgs.push_back(sparc::getSparcAsmModeForCPU(CPU, getToolChain().getTriple()));
|
||||
AddAssemblerKPIC(getToolChain(), Args, CmdArgs);
|
||||
break;
|
||||
}
|
||||
|
||||
case llvm::Triple::mips64:
|
||||
case llvm::Triple::mips64el: {
|
||||
StringRef CPUName;
|
||||
StringRef ABIName;
|
||||
mips::getMipsCPUAndABI(Args, getToolChain().getTriple(), CPUName, ABIName);
|
||||
|
||||
CmdArgs.push_back("-mabi");
|
||||
CmdArgs.push_back(mips::getGnuCompatibleMipsABIName(ABIName).data());
|
||||
|
||||
if (getToolChain().getTriple().isLittleEndian())
|
||||
CmdArgs.push_back("-EL");
|
||||
else
|
||||
CmdArgs.push_back("-EB");
|
||||
|
||||
AddAssemblerKPIC(getToolChain(), Args, CmdArgs);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
|
||||
|
||||
CmdArgs.push_back("-o");
|
||||
CmdArgs.push_back(Output.getFilename());
|
||||
|
||||
for (const auto &II : Inputs)
|
||||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(std::make_unique<Command>(JA, *this,
|
||||
ResponseFileSupport::AtFileCurCP(),
|
||||
Exec, CmdArgs, Inputs, Output));
|
||||
}
|
||||
|
||||
void secbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
const ArgList &Args,
|
||||
const char *LinkingOutput) const {
|
||||
const toolchains::SecBSD &ToolChain =
|
||||
static_cast<const toolchains::SecBSD &>(getToolChain());
|
||||
const Driver &D = getToolChain().getDriver();
|
||||
ArgStringList CmdArgs;
|
||||
|
||||
// Silence warning for "clang -g foo.o -o foo"
|
||||
Args.ClaimAllArgs(options::OPT_g_Group);
|
||||
// and "clang -emit-llvm foo.o -o foo"
|
||||
Args.ClaimAllArgs(options::OPT_emit_llvm);
|
||||
// and for "clang -w foo.o -o foo". Other warning options are already
|
||||
// handled somewhere else.
|
||||
Args.ClaimAllArgs(options::OPT_w);
|
||||
|
||||
if (ToolChain.getArch() == llvm::Triple::mips64)
|
||||
CmdArgs.push_back("-EB");
|
||||
else if (ToolChain.getArch() == llvm::Triple::mips64el)
|
||||
CmdArgs.push_back("-EL");
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_shared)) {
|
||||
CmdArgs.push_back("-e");
|
||||
CmdArgs.push_back("__start");
|
||||
}
|
||||
|
||||
CmdArgs.push_back("--eh-frame-hdr");
|
||||
if (Args.hasArg(options::OPT_static)) {
|
||||
CmdArgs.push_back("-Bstatic");
|
||||
} else {
|
||||
if (Args.hasArg(options::OPT_rdynamic))
|
||||
CmdArgs.push_back("-export-dynamic");
|
||||
CmdArgs.push_back("-Bdynamic");
|
||||
if (Args.hasArg(options::OPT_shared)) {
|
||||
CmdArgs.push_back("-shared");
|
||||
} else {
|
||||
CmdArgs.push_back("-dynamic-linker");
|
||||
CmdArgs.push_back("/usr/libexec/ld.so");
|
||||
}
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_pie))
|
||||
CmdArgs.push_back("-pie");
|
||||
if (Args.hasArg(options::OPT_nopie) || Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-nopie");
|
||||
|
||||
if (Output.isFilename()) {
|
||||
CmdArgs.push_back("-o");
|
||||
CmdArgs.push_back(Output.getFilename());
|
||||
} else {
|
||||
assert(Output.isNothing() && "Invalid output.");
|
||||
}
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
|
||||
const char *crt0 = nullptr;
|
||||
const char *crtbegin = nullptr;
|
||||
if (!Args.hasArg(options::OPT_shared)) {
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
crt0 = "gcrt0.o";
|
||||
else if (Args.hasArg(options::OPT_static) &&
|
||||
!Args.hasArg(options::OPT_nopie))
|
||||
crt0 = "rcrt0.o";
|
||||
else
|
||||
crt0 = "crt0.o";
|
||||
crtbegin = "crtbegin.o";
|
||||
} else {
|
||||
crtbegin = "crtbeginS.o";
|
||||
}
|
||||
|
||||
if (crt0)
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crt0)));
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtbegin)));
|
||||
}
|
||||
|
||||
Args.AddAllArgs(CmdArgs, options::OPT_L);
|
||||
ToolChain.AddFilePathLibArgs(Args, CmdArgs);
|
||||
Args.AddAllArgs(CmdArgs, {options::OPT_T_Group, options::OPT_e,
|
||||
options::OPT_s, options::OPT_t,
|
||||
options::OPT_Z_Flag, options::OPT_r});
|
||||
|
||||
bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
|
||||
bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
|
||||
AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
|
||||
// Use the static OpenMP runtime with -static-openmp
|
||||
bool StaticOpenMP = Args.hasArg(options::OPT_static_openmp) &&
|
||||
!Args.hasArg(options::OPT_static);
|
||||
addOpenMPRuntime(CmdArgs, ToolChain, Args, StaticOpenMP);
|
||||
|
||||
if (D.CCCIsCXX()) {
|
||||
if (ToolChain.ShouldLinkCXXStdlib(Args))
|
||||
ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-lm_p");
|
||||
else
|
||||
CmdArgs.push_back("-lm");
|
||||
}
|
||||
if (NeedsSanitizerDeps) {
|
||||
CmdArgs.push_back(ToolChain.getCompilerRTArgString(Args, "builtins"));
|
||||
linkSanitizerRuntimeDeps(ToolChain, CmdArgs);
|
||||
}
|
||||
if (NeedsXRayDeps) {
|
||||
CmdArgs.push_back(ToolChain.getCompilerRTArgString(Args, "builtins"));
|
||||
linkXRayRuntimeDeps(ToolChain, CmdArgs);
|
||||
}
|
||||
// FIXME: For some reason GCC passes -lgcc before adding
|
||||
// the default system libraries. Just mimic this for now.
|
||||
CmdArgs.push_back("-lcompiler_rt");
|
||||
|
||||
if (Args.hasArg(options::OPT_pthread)) {
|
||||
if (!Args.hasArg(options::OPT_shared) && Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-lpthread_p");
|
||||
else
|
||||
CmdArgs.push_back("-lpthread");
|
||||
}
|
||||
|
||||
if (!Args.hasArg(options::OPT_shared)) {
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-lc_p");
|
||||
else
|
||||
CmdArgs.push_back("-lc");
|
||||
}
|
||||
|
||||
CmdArgs.push_back("-lcompiler_rt");
|
||||
}
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
|
||||
const char *crtend = nullptr;
|
||||
if (!Args.hasArg(options::OPT_shared))
|
||||
crtend = "crtend.o";
|
||||
else
|
||||
crtend = "crtendS.o";
|
||||
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend)));
|
||||
}
|
||||
|
||||
ToolChain.addProfileRTLibs(Args, CmdArgs);
|
||||
|
||||
const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath());
|
||||
C.addCommand(std::make_unique<Command>(JA, *this,
|
||||
ResponseFileSupport::AtFileCurCP(),
|
||||
Exec, CmdArgs, Inputs, Output));
|
||||
}
|
||||
|
||||
SanitizerMask SecBSD::getSupportedSanitizers() const {
|
||||
const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
|
||||
const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
|
||||
|
||||
// For future use, only UBsan at the moment
|
||||
SanitizerMask Res = ToolChain::getSupportedSanitizers();
|
||||
|
||||
if (IsX86 || IsX86_64) {
|
||||
Res |= SanitizerKind::Vptr;
|
||||
Res |= SanitizerKind::Fuzzer;
|
||||
Res |= SanitizerKind::FuzzerNoLink;
|
||||
}
|
||||
|
||||
if (IsX86_64) {
|
||||
Res |= SanitizerKind::KernelAddress;
|
||||
}
|
||||
|
||||
return Res;
|
||||
}
|
||||
|
||||
/// SecBSD - SecBSD tool chain which can call as(1) and ld(1) directly.
|
||||
|
||||
SecBSD::SecBSD(const Driver &D, const llvm::Triple &Triple,
|
||||
const ArgList &Args)
|
||||
: Generic_ELF(D, Triple, Args) {
|
||||
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
|
||||
}
|
||||
|
||||
void SecBSD::AddClangSystemIncludeArgs(
|
||||
const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const {
|
||||
const Driver &D = getDriver();
|
||||
|
||||
if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
|
||||
return;
|
||||
|
||||
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
|
||||
SmallString<128> Dir(D.ResourceDir);
|
||||
llvm::sys::path::append(Dir, "include");
|
||||
addSystemInclude(DriverArgs, CC1Args, Dir.str());
|
||||
}
|
||||
|
||||
if (DriverArgs.hasArg(options::OPT_nostdlibinc))
|
||||
return;
|
||||
|
||||
// Check for configure-time C include directories.
|
||||
StringRef CIncludeDirs(C_INCLUDE_DIRS);
|
||||
if (CIncludeDirs != "") {
|
||||
SmallVector<StringRef, 5> dirs;
|
||||
CIncludeDirs.split(dirs, ":");
|
||||
for (StringRef dir : dirs) {
|
||||
StringRef Prefix =
|
||||
llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
|
||||
addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/include");
|
||||
}
|
||||
|
||||
void SecBSD::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const {
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getDriver().SysRoot + "/usr/include/c++/v1");
|
||||
}
|
||||
|
||||
void SecBSD::AddCXXStdlibLibArgs(const ArgList &Args,
|
||||
ArgStringList &CmdArgs) const {
|
||||
bool Profiling = Args.hasArg(options::OPT_pg);
|
||||
|
||||
CmdArgs.push_back(Profiling ? "-lc++_p" : "-lc++");
|
||||
CmdArgs.push_back(Profiling ? "-lc++abi_p" : "-lc++abi");
|
||||
CmdArgs.push_back(Profiling ? "-lpthread_p" : "-lpthread");
|
||||
}
|
||||
|
||||
std::string SecBSD::getCompilerRT(const ArgList &Args,
|
||||
StringRef Component,
|
||||
FileType Type) const {
|
||||
if (Component == "builtins") {
|
||||
SmallString<128> Path(getDriver().SysRoot);
|
||||
llvm::sys::path::append(Path, "/usr/lib/libcompiler_rt.a");
|
||||
return std::string(Path.str());
|
||||
} else {
|
||||
SmallString<128> P(getDriver().ResourceDir);
|
||||
std::string CRTBasename =
|
||||
buildCompilerRTBasename(Args, Component, Type, /*AddArch=*/false);
|
||||
llvm::sys::path::append(P, "lib", CRTBasename);
|
||||
if (getVFS().exists(P))
|
||||
return std::string(P.str());
|
||||
return ToolChain::getCompilerRT(Args, Component, Type);
|
||||
}
|
||||
}
|
||||
|
||||
Tool *SecBSD::buildAssembler() const {
|
||||
return new tools::secbsd::Assembler(*this);
|
||||
}
|
||||
|
||||
Tool *SecBSD::buildLinker() const { return new tools::secbsd::Linker(*this); }
|
||||
|
||||
bool SecBSD::HasNativeLLVMSupport() const { return true; }
|
|
@ -1,109 +0,0 @@
|
|||
//===--- SecBSD.h - SecBSD ToolChain Implementations ----------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_OPENBSD_H
|
||||
#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_OPENBSD_H
|
||||
|
||||
#include "Gnu.h"
|
||||
#include "clang/Basic/LangOptions.h"
|
||||
#include "clang/Driver/Tool.h"
|
||||
#include "clang/Driver/ToolChain.h"
|
||||
|
||||
namespace clang {
|
||||
namespace driver {
|
||||
namespace tools {
|
||||
|
||||
/// secbsd -- Directly call GNU Binutils assembler and linker
|
||||
namespace secbsd {
|
||||
class LLVM_LIBRARY_VISIBILITY Assembler : public Tool {
|
||||
public:
|
||||
Assembler(const ToolChain &TC)
|
||||
: Tool("secbsd::Assembler", "assembler", TC) {}
|
||||
|
||||
bool hasIntegratedCPP() const override { return false; }
|
||||
|
||||
void ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output, const InputInfoList &Inputs,
|
||||
const llvm::opt::ArgList &TCArgs,
|
||||
const char *LinkingOutput) const override;
|
||||
};
|
||||
|
||||
class LLVM_LIBRARY_VISIBILITY Linker : public Tool {
|
||||
public:
|
||||
Linker(const ToolChain &TC) : Tool("secbsd::Linker", "linker", TC) {}
|
||||
|
||||
bool hasIntegratedCPP() const override { return false; }
|
||||
bool isLinkJob() const override { return true; }
|
||||
|
||||
void ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output, const InputInfoList &Inputs,
|
||||
const llvm::opt::ArgList &TCArgs,
|
||||
const char *LinkingOutput) const override;
|
||||
};
|
||||
} // end namespace secbsd
|
||||
} // end namespace tools
|
||||
|
||||
namespace toolchains {
|
||||
|
||||
class LLVM_LIBRARY_VISIBILITY SecBSD : public Generic_ELF {
|
||||
public:
|
||||
SecBSD(const Driver &D, const llvm::Triple &Triple,
|
||||
const llvm::opt::ArgList &Args);
|
||||
|
||||
bool HasNativeLLVMSupport() const override;
|
||||
|
||||
bool IsMathErrnoDefault() const override { return false; }
|
||||
bool IsObjCNonFragileABIDefault() const override { return true; }
|
||||
bool isPIEDefault() const override { return true; }
|
||||
|
||||
RuntimeLibType GetDefaultRuntimeLibType() const override {
|
||||
return ToolChain::RLT_CompilerRT;
|
||||
}
|
||||
CXXStdlibType GetDefaultCXXStdlibType() const override {
|
||||
return ToolChain::CST_Libcxx;
|
||||
}
|
||||
|
||||
void
|
||||
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
|
||||
void addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
|
||||
llvm::opt::ArgStringList &CmdArgs) const override;
|
||||
|
||||
std::string getCompilerRT(const llvm::opt::ArgList &Args, StringRef Component,
|
||||
FileType Type = ToolChain::FT_Static) const override;
|
||||
|
||||
bool IsUnwindTablesDefault(const llvm::opt::ArgList &Args) const override {
|
||||
switch (getArch()) {
|
||||
case llvm::Triple::arm:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
LangOptions::StackProtectorMode
|
||||
GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
|
||||
return LangOptions::SSPStrong;
|
||||
}
|
||||
unsigned GetDefaultDwarfVersion() const override { return 2; }
|
||||
|
||||
SanitizerMask getSupportedSanitizers() const override;
|
||||
|
||||
protected:
|
||||
Tool *buildAssembler() const override;
|
||||
Tool *buildLinker() const override;
|
||||
};
|
||||
|
||||
} // end namespace toolchains
|
||||
} // end namespace driver
|
||||
} // end namespace clang
|
||||
|
||||
#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_OPENBSD_H
|
|
@ -97,7 +97,7 @@ macro(add_sanitizer_rt_version_list name)
|
|||
endmacro()
|
||||
|
||||
# Add target to check code style for sanitizer runtimes.
|
||||
if(CMAKE_HOST_UNIX AND NOT OS_NAME MATCHES "SecBSD")
|
||||
if(CMAKE_HOST_UNIX AND NOT OS_NAME MATCHES "OpenBSD")
|
||||
add_custom_target(SanitizerLintCheck
|
||||
COMMAND env LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 TMPDIR=
|
||||
PYTHON_EXECUTABLE=${Python3_EXECUTABLE}
|
||||
|
|
|
@ -1471,7 +1471,7 @@ class Base(unittest2.TestCase):
|
|||
|
||||
def getstdlibFlag(self):
|
||||
""" Returns the proper -stdlib flag, or empty if not required."""
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd" or self.getPlatform() == "openbsd" or self.getPlatform() == "secbsd":
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd" or self.getPlatform() == "openbsd":
|
||||
stdlibflag = "-stdlib=libc++"
|
||||
else: # this includes NetBSD
|
||||
stdlibflag = ""
|
||||
|
@ -1734,7 +1734,7 @@ class Base(unittest2.TestCase):
|
|||
cflags += "c++11"
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd":
|
||||
cflags += " -stdlib=libc++"
|
||||
elif self.getPlatform() == "openbsd" or self.getPlatform() == "secbsd":
|
||||
elif self.getPlatform() == "openbsd":
|
||||
cflags += " -stdlib=libc++"
|
||||
elif self.getPlatform() == "netbsd":
|
||||
# NetBSD defaults to libc++
|
||||
|
@ -1782,7 +1782,7 @@ class Base(unittest2.TestCase):
|
|||
return configuration.lldb_libs_dir
|
||||
|
||||
def getLibcPlusPlusLibs(self):
|
||||
if self.getPlatform() in ('freebsd', 'linux', 'netbsd', 'openbsd', 'secbsd'):
|
||||
if self.getPlatform() in ('freebsd', 'linux', 'netbsd', 'openbsd'):
|
||||
return ['libc++.so.1']
|
||||
else:
|
||||
return ['libc++.1.dylib', 'libc++abi.']
|
||||
|
|
|
@ -21,10 +21,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
|||
list(APPEND LLDB_PLUGINS lldbPluginProcessOpenBSD)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "SecBSD")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginProcessOpenBSD)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginObjectFileMachO)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
|
|
4
gnu/llvm/llvm/cmake/config.guess
vendored
4
gnu/llvm/llvm/cmake/config.guess
vendored
|
@ -206,10 +206,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:SecBSD:*:*)
|
||||
UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-secbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:ekkoBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
|
|
|
@ -99,7 +99,7 @@ function(add_llvm_symbol_exports target_name export_file)
|
|||
elseif(LLVM_HAVE_LINK_VERSION_SCRIPT)
|
||||
# Gold and BFD ld require a version script rather than a plain list.
|
||||
set(native_export_file "${target_name}.exports")
|
||||
# FIXME: Don't write the "local:" line on OpenBSD/SecBSD.
|
||||
# FIXME: Don't write the "local:" line on OpenBSD.
|
||||
# in the export file, also add a linker script to version LLVM symbols (form: LLVM_N.M)
|
||||
add_custom_command(OUTPUT ${native_export_file}
|
||||
COMMAND echo "LLVM_${LLVM_VERSION_MAJOR} {" > ${native_export_file}
|
||||
|
@ -263,7 +263,7 @@ function(add_link_opts target_name)
|
|||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
|
||||
LINK_FLAGS " -Wl,-z,discard-unused=sections")
|
||||
endif()
|
||||
elseif(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD|SecBSD|AIX|OS390")
|
||||
elseif(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD|AIX|OS390")
|
||||
# TODO Revisit this later on z/OS.
|
||||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
|
||||
LINK_FLAGS " -Wl,--gc-sections")
|
||||
|
|
|
@ -228,7 +228,7 @@ endif()
|
|||
|
||||
# Pass -Wl,-z,defs. This makes sure all symbols are defined. Otherwise a DSO
|
||||
# build might work on ELF but fail on MachO/COFF.
|
||||
if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin|FreeBSD|OpenBSD|SecBSD|DragonFly|AIX|SunOS|OS390" OR
|
||||
if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin|FreeBSD|OpenBSD|DragonFly|AIX|SunOS|OS390" OR
|
||||
WIN32 OR CYGWIN) AND
|
||||
NOT LLVM_USE_SANITIZER)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs")
|
||||
|
|
|
@ -356,7 +356,6 @@ enum {
|
|||
ELFOSABI_AROS = 15, // AROS
|
||||
ELFOSABI_FENIXOS = 16, // FenixOS
|
||||
ELFOSABI_CLOUDABI = 17, // Nuxi CloudABI
|
||||
ELFOSABI_SECBSD = 19, // SecBSD
|
||||
ELFOSABI_FIRST_ARCH = 64, // First architecture-specific OS ABI
|
||||
ELFOSABI_AMDGPU_HSA = 64, // AMD HSA runtime
|
||||
ELFOSABI_AMDGPU_PAL = 65, // AMD PAL runtime
|
||||
|
|
|
@ -1001,7 +1001,6 @@ static const EnumEntry<unsigned> ElfOSABI[] = {
|
|||
{"AROS", "AROS", ELF::ELFOSABI_AROS},
|
||||
{"FenixOS", "FenixOS", ELF::ELFOSABI_FENIXOS},
|
||||
{"CloudABI", "CloudABI", ELF::ELFOSABI_CLOUDABI},
|
||||
{"SecBSD", "UNIX - SecBSD", ELF::ELFOSABI_SECBSD},
|
||||
{"Standalone", "Standalone App", ELF::ELFOSABI_STANDALONE}
|
||||
};
|
||||
|
||||
|
|
|
@ -37,7 +37,6 @@ if(LLVM_BUILD_LLVM_DYLIB)
|
|||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SecBSD")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")) # FIXME: It should be "GNU ld for elf"
|
||||
|
|
|
@ -1480,10 +1480,6 @@ TEST(TripleTest, getARMCPUForArch) {
|
|||
llvm::Triple Triple("arm--openbsd");
|
||||
EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch());
|
||||
}
|
||||
{
|
||||
llvm::Triple Triple("arm--secbsd");
|
||||
EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch());
|
||||
}
|
||||
{
|
||||
llvm::Triple Triple("armv6-unknown-freebsd");
|
||||
EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch());
|
||||
|
|
|
@ -2156,7 +2156,7 @@ TEST_F(FileSystemTest, permissions) {
|
|||
// AIX and Solaris without root will mask off (i.e., lose) the sticky bit
|
||||
// on files.
|
||||
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && \
|
||||
!defined(__SecBSD__) && !defined(_AIX) && !(defined(__sun__) && defined(__svr4__))
|
||||
!defined(_AIX) && !(defined(__sun__) && defined(__svr4__))
|
||||
EXPECT_EQ(fs::setPermissions(TempPath, fs::sticky_bit), NoError);
|
||||
EXPECT_TRUE(CheckPermissions(fs::sticky_bit));
|
||||
|
||||
|
@ -2176,7 +2176,7 @@ TEST_F(FileSystemTest, permissions) {
|
|||
|
||||
EXPECT_EQ(fs::setPermissions(TempPath, fs::all_perms), NoError);
|
||||
EXPECT_TRUE(CheckPermissions(fs::all_perms));
|
||||
#endif // !FreeBSD && !NetBSD && !OpenBSD && !SecBSD && !AIX
|
||||
#endif // !FreeBSD && !NetBSD && !OpenBSD && !AIX
|
||||
|
||||
EXPECT_EQ(fs::setPermissions(TempPath, fs::all_perms & ~fs::sticky_bit),
|
||||
NoError);
|
||||
|
|
|
@ -86,7 +86,6 @@ static_library("Driver") {
|
|||
"ToolChains/PPCLinux.cpp",
|
||||
"ToolChains/PS4CPU.cpp",
|
||||
"ToolChains/RISCVToolchain.cpp",
|
||||
"ToolChains/SecBSD.cpp",
|
||||
"ToolChains/Solaris.cpp",
|
||||
"ToolChains/TCE.cpp",
|
||||
"ToolChains/VEToolchain.cpp",
|
||||
|
|
4
gnu/share/config.guess
vendored
4
gnu/share/config.guess
vendored
|
@ -682,6 +682,10 @@ EOF
|
|||
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:SecBSD:*:*)
|
||||
UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-secbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
i*:CYGWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-cygwin
|
||||
exit 0 ;;
|
||||
|
|
2
gnu/share/config.sub
vendored
2
gnu/share/config.sub
vendored
|
@ -1032,7 +1032,7 @@ case $os in
|
|||
| -aos* \
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
|
||||
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -secbsd* | -freebsd* | -riscix* \
|
||||
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
|
|
|
@ -1395,7 +1395,7 @@ else
|
|||
hardcode_shlibpath_var=no
|
||||
;;
|
||||
|
||||
openbsd*)
|
||||
openbsd* | secbsd*)
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
|
@ -1995,7 +1995,7 @@ netbsd*)
|
|||
shlibpath_var=LD_LIBRARY_PATH
|
||||
;;
|
||||
|
||||
openbsd*)
|
||||
openbsd* | secbsd*)
|
||||
version_type=sunos
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
need_lib_prefix=no
|
||||
|
|
|
@ -28,7 +28,8 @@ SUBDIR+= binutils
|
|||
SUBDIR+= binutils-2.17
|
||||
|
||||
# Do these last; texinfo builds the info 'dir' file, perl must be after binutils
|
||||
SUBDIR+= perl texinfo
|
||||
SUBDIR+= texinfo
|
||||
SUBDIR+= perl
|
||||
|
||||
maninstall:
|
||||
${INSTALL} ${INSTALL_COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
|
||||
|
@ -36,4 +37,4 @@ maninstall:
|
|||
@rm -f ${DESTDIR}${MANDIR}1/unprotoize.1
|
||||
ln ${DESTDIR}${MANDIR}1/protoize.1 ${DESTDIR}${MANDIR}1/unprotoize.1
|
||||
|
||||
.include <bsd.subdir.mk>
|
||||
.include <bsd.subdir.mk>
|
|
@ -97,7 +97,7 @@ extern void expandargv PARAMS ((int *, char ***));
|
|||
to find the declaration so provide a fully prototyped one. If it
|
||||
is 1, we found it so don't provide any declaration at all. */
|
||||
#if !HAVE_DECL_BASENAME
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__SecBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
||||
extern char *basename (const char *);
|
||||
#else
|
||||
/* Do not allow basename to be used if there is no prototype seen. We
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (bsdi)
|
||||
#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__SecBSD__) || defined (bsdi)
|
||||
#undef BSD
|
||||
#include <sys/ioctl.h>
|
||||
#endif
|
||||
|
|
|
@ -77,7 +77,7 @@ extern void expandargv PARAMS ((int *, char ***));
|
|||
to find the declaration so provide a fully prototyped one. If it
|
||||
is 1, we found it so don't provide any declaration at all. */
|
||||
#if !HAVE_DECL_BASENAME
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (HAVE_DECL_BASENAME)
|
||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__SecBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (HAVE_DECL_BASENAME)
|
||||
extern char *basename PARAMS ((const char *));
|
||||
#else
|
||||
extern char *basename ();
|
||||
|
|
|
@ -3,32 +3,8 @@
|
|||
|
||||
TARGET_ARCH?= ${MACHINE_ARCH}
|
||||
|
||||
.if ${TARGET_ARCH} == "alpha"
|
||||
GCC_CPU= alpha
|
||||
.elif ${TARGET_ARCH} == "arm"
|
||||
.if ${TARGET_ARCH} == "arm"
|
||||
GCC_CPU= arm
|
||||
.elif ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
|
||||
GCC_CPU= i386
|
||||
.elif ${TARGET_ARCH} == "ia64"
|
||||
GCC_CPU= ia64
|
||||
.elif ${TARGET_ARCH} == "hppa"
|
||||
GCC_CPU= pa
|
||||
TARGET_CPU_DEFAULT= MASK_PA_11
|
||||
.elif ${TARGET_ARCH} == "hppa64"
|
||||
GCC_CPU= pa
|
||||
TARGET_CPU_DEFAULT= MASK_PA_11|MASK_PA_20
|
||||
.elif ${TARGET_ARCH} == "m88k"
|
||||
GCC_CPU= m88k
|
||||
.elif ${TARGET_ARCH} == "mips64" || ${TARGET_ARCH} == "mips64el"
|
||||
GCC_CPU= mips
|
||||
.elif ${TARGET_ARCH} == "powerpc"
|
||||
GCC_CPU= rs6000
|
||||
.elif ${TARGET_ARCH} == "sh"
|
||||
GCC_CPU= sh
|
||||
.elif ${TARGET_ARCH} == "sparc"
|
||||
GCC_CPU= sparc
|
||||
TARGET_CPU_DEFAULT= TARGET_CPU_v7
|
||||
.elif ${TARGET_ARCH} == "sparc64"
|
||||
GCC_CPU= sparc
|
||||
TARGET_CPU_DEFAULT= TARGET_CPU_ultrasparc
|
||||
.endif
|
||||
|
|
|
@ -14,7 +14,7 @@ NOPIC= Yes
|
|||
|
||||
EXTRA_OBJS=
|
||||
GGC= ggc-page.o
|
||||
host_hook_obj= host-openbsd.o
|
||||
host_hook_obj= host-secbsd.o
|
||||
|
||||
#
|
||||
# Most lists copied verbatim from GCC Makefiles.
|
||||
|
|
|
@ -51,15 +51,15 @@ TARGET_INC+= elfos.h
|
|||
.if ${TARGET_ARCH} == "arm"
|
||||
TARGET_INC+= arm/elf.h
|
||||
TARGET_INC+= arm/aout.h
|
||||
TARGET_INC+= arm/openbsd1.h
|
||||
TARGET_INC+= arm/secbsd1.h
|
||||
TARGET_INC+= arm/arm.h
|
||||
.endif
|
||||
.if ${TARGET_ARCH} == "sh"
|
||||
TARGET_INC+= sh/elf.h
|
||||
.endif
|
||||
TARGET_INC+= openbsd.h
|
||||
TARGET_INC+= openbsd-libpthread.h
|
||||
TARGET_INC+= openbsd-native.h
|
||||
TARGET_INC+= secbsd.h
|
||||
TARGET_INC+= secbsd-libpthread.h
|
||||
TARGET_INC+= secbsd-native.h
|
||||
.if ${TARGET_ARCH} == "powerpc"
|
||||
TARGET_INC+= rs6000/secureplt.h
|
||||
TARGET_INC+= freebsd-spec.h
|
||||
|
@ -78,17 +78,17 @@ TM_DEFINES+= TARGET_ENDIAN_DEFAULT=0
|
|||
.endif
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
TARGET_INC+= ${GCC_CPU}/x86-64.h
|
||||
TARGET_INC+= ${GCC_CPU}/openbsd64.h
|
||||
TARGET_INC+= ${GCC_CPU}/secbsd64.h
|
||||
.elif ${TARGET_ARCH} == "hppa64"
|
||||
TARGET_INC+= ${GCC_CPU}/openbsd64.h
|
||||
.elif ${TARGET_ARCH} == "sparc64"
|
||||
TARGET_INC+= ${GCC_CPU}/openbsd64.h
|
||||
.elif ${TARGET_ARCH} == "i386"
|
||||
TARGET_INC+= ${GCC_CPU}/openbsdelf.h
|
||||
TARGET_INC+= ${GCC_CPU}/secbsdelf.h
|
||||
.elif ${TARGET_ARCH} == "m88k"
|
||||
TARGET_INC+= ${GCC_CPU}/openbsdelf.h
|
||||
.else
|
||||
TARGET_INC+= ${GCC_CPU}/openbsd.h
|
||||
TARGET_INC+= ${GCC_CPU}/secbsd.h
|
||||
.endif
|
||||
TARGET_INC+= defaults.h
|
||||
|
||||
|
@ -182,8 +182,8 @@ OPT_FILES= c.opt common.opt
|
|||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt
|
||||
.endif
|
||||
|
||||
.if exists(${.CURDIR}/${GCC_CPU}-openbsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/${GCC_CPU}-openbsd.opt
|
||||
.if exists(${.CURDIR}/${GCC_CPU}-secbsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/${GCC_CPU}-secbsd.opt
|
||||
.endif
|
||||
|
||||
.if ${TARGET_ARCH} == "powerpc"
|
||||
|
@ -194,8 +194,8 @@ OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt
|
|||
OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt
|
||||
.endif
|
||||
|
||||
.if exists(${.CURDIR}/openbsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/openbsd.opt
|
||||
.if exists(${.CURDIR}/secbsd.opt)
|
||||
OPT_FILES+= ${.CURDIR}/secbsd.opt
|
||||
.endif
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
@ -334,7 +334,7 @@ GENSRCS+= multilib.h
|
|||
|
||||
configargs.h:
|
||||
echo 'static const char configuration_arguments[] =' > ${.TARGET}
|
||||
echo ' "OpenBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET}
|
||||
echo ' "SecBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET}
|
||||
echo 'static const char thread_model[] = "posix";' >> ${.TARGET}
|
||||
echo 'static const struct {' >> ${.TARGET}
|
||||
echo ' const char *name, *value;' >> ${.TARGET}
|
||||
|
|
52
gnu/usr.bin/cc/cc_tools/secbsd-native.h
Normal file
52
gnu/usr.bin/cc/cc_tools/secbsd-native.h
Normal file
|
@ -0,0 +1,52 @@
|
|||
/* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/freebsd-native.h,v 1.28.8.1 2009/04/15 03:14:26 kensmith Exp $ */
|
||||
/* $OpenBSD: secbsd-native.h,v 1.3 2011/03/06 20:18:22 guenther Exp $ */
|
||||
|
||||
/* SECBSD_NATIVE is defined when gcc is integrated into the SecBSD
|
||||
source tree so it can be configured appropriately without using
|
||||
the GNU configure/build mechanism. */
|
||||
|
||||
#define SECBSD_NATIVE 1
|
||||
|
||||
#undef SYSTEM_INCLUDE_DIR /* We don't need one for now. */
|
||||
#undef TOOL_INCLUDE_DIR /* We don't need one for now. */
|
||||
#undef LOCAL_INCLUDE_DIR /* We don't wish to support one. */
|
||||
|
||||
/* Look for the include files in the system-defined places. */
|
||||
#define GPLUSPLUS_INCLUDE_DIR PREFIX"/include/g++"
|
||||
#define GPLUSPLUS_BACKWARD_INCLUDE_DIR PREFIX"/include/g++/backward"
|
||||
#define GCC_INCLUDE_DIR PREFIX"/include"
|
||||
#ifdef CROSS_COMPILE
|
||||
#define CROSS_INCLUDE_DIR PREFIX"/include"
|
||||
#else
|
||||
#define STANDARD_INCLUDE_DIR PREFIX"/include"
|
||||
#endif
|
||||
|
||||
/* Under SecBSD, the normal location of the compiler back ends is the
|
||||
/usr/libexec directory.
|
||||
|
||||
``cc --print-search-dirs'' gives:
|
||||
install: STANDARD_EXEC_PREFIX/
|
||||
programs: STANDARD_EXEC_PREFIX:MD_EXEC_PREFIX
|
||||
libraries: STANDARD_STARTFILE_PREFIX
|
||||
*/
|
||||
#undef STANDARD_BINDIR_PREFIX /* We don't need one for now. */
|
||||
#define STANDARD_EXEC_PREFIX PREFIX"/lib/gcc-lib/"
|
||||
#define STANDARD_LIBEXEC_PREFIX PREFIX"/lib/gcc-lib/"
|
||||
#define TOOLDIR_BASE_PREFIX PREFIX"/"
|
||||
#undef MD_EXEC_PREFIX /* We don't want one. */
|
||||
#define FBSD_DATA_PREFIX PREFIX"/libdata/gcc/"
|
||||
|
||||
/* Under SecBSD, the normal location of the various *crt*.o files is the
|
||||
/usr/lib directory. */
|
||||
|
||||
#undef MD_STARTFILE_PREFIX /* We don't need one for now. */
|
||||
#define STANDARD_STARTFILE_PREFIX PREFIX"/lib/"
|
||||
#define STARTFILE_PREFIX_SPEC PREFIX"/lib/"
|
||||
#ifdef CROSS_COMPILE
|
||||
#define STANDARD_BINDIR_PREFIX PREFIX"/"DEFAULT_TARGET_MACHINE "/bin/"
|
||||
#else
|
||||
#define STANDARD_BINDIR_PREFIX PREFIX"/bin/"
|
||||
#endif
|
||||
|
||||
/* SecBSD is 4.4BSD derived */
|
||||
#define bsd4_4
|
|
@ -45,9 +45,9 @@ CPPFLAGS+= -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS \
|
|||
-D__STDC_FORMAT_MACROS
|
||||
|
||||
.if ${MACHINE_ARCH} == "arm"
|
||||
TRIPLE= armv7-unknown-secbsd${OSREV}-gnueabi
|
||||
TRIPLE= armv7-unknown-openbsd${OSREV}-gnueabi
|
||||
.else
|
||||
TRIPLE= ${MACHINE_ARCH}-unknown-secbsd${OSREV}
|
||||
TRIPLE= ${MACHINE_ARCH}-unknown-openbsd${OSREV}
|
||||
.endif
|
||||
CPPFLAGS+= -DLLVM_PREFIX=\"/usr\"
|
||||
.include "Makefile.arch"
|
||||
|
|
|
@ -60,7 +60,6 @@ SRCS+= AIX.cpp \
|
|||
OpenBSD.cpp \
|
||||
PS4CPU.cpp \
|
||||
RISCVToolchain.cpp \
|
||||
SecBSD.cpp \
|
||||
Solaris.cpp \
|
||||
TCE.cpp \
|
||||
VEToolchain.cpp \
|
||||
|
|
|
@ -11,7 +11,7 @@ LANGUAGES=--enable-languages='c,c++,objc'
|
|||
V=3.3.6
|
||||
|
||||
LIBIBERTY_INCLUDES=${.CURDIR}/../../lib/libiberty/include
|
||||
GNUCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_NATIVE \
|
||||
GNUCFLAGS= ${CFLAGS} ${COPTS} -DSECBSD_NATIVE \
|
||||
-I${LIBIBERTY_INCLUDES}
|
||||
|
||||
MAKE_FLAGS= CFLAGS="${GNUCFLAGS}" \
|
||||
|
@ -45,8 +45,8 @@ CONFIGTARGET= --build=${CROSS_HOST}-unknown-secbsd${OSREV} \
|
|||
CONFIGPREFIX= ${CROSSDIR}/usr
|
||||
PATH= /bin:/usr/bin:/sbin:/usr/sbin:${CROSSDIR}/usr/bin
|
||||
GXX_INCDIR= ${CROSSDIR}/usr/include/g++
|
||||
GNUCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_CROSS -I${LIBIBERTY_INCLUDES}
|
||||
HOSTCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_CROSS -I${LIBIBERTY_INCLUDES}
|
||||
GNUCFLAGS= ${CFLAGS} ${COPTS} -DSECBSD_CROSS -I${LIBIBERTY_INCLUDES}
|
||||
HOSTCFLAGS= ${CFLAGS} ${COPTS} -DSECBSD_CROSS -I${LIBIBERTY_INCLUDES}
|
||||
HOST_CC=cc
|
||||
MAKE_FLAGS+= CFLAGS_FOR_BUILD="${HOSTCFLAGS}" HOST_CC=cc
|
||||
.elif defined(TARGET_ARCH) && defined(CROSSDIR)
|
||||
|
@ -55,7 +55,7 @@ CONFIGPREFIX= ${CROSSDIR}/usr
|
|||
MAKE_FLAGS+= GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include"
|
||||
PATH= /bin:/usr/bin:/sbin:/usr/sbin:${CROSSDIR}/usr/bin
|
||||
GXX_INCDIR= ${CROSSDIR}/usr/include/g++
|
||||
GNUCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_CROSS -I${LIBIBERTY_INCLUDES}
|
||||
GNUCFLAGS= ${CFLAGS} ${COPTS} -DSECBSD_CROSS -I${LIBIBERTY_INCLUDES}
|
||||
.else
|
||||
CONFIGTARGET=
|
||||
CONFIGPREFIX= /usr
|
||||
|
|
4
gnu/usr.bin/gcc/config.guess
vendored
4
gnu/usr.bin/gcc/config.guess
vendored
|
@ -200,6 +200,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:SecBSD:*:*)
|
||||
UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-secbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:MicroBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
|
|
2
gnu/usr.bin/gcc/config.sub
vendored
2
gnu/usr.bin/gcc/config.sub
vendored
|
@ -1112,7 +1112,7 @@ case $os in
|
|||
| -aos* \
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
|
||||
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -secbsd* | -freebsd* | -riscix* \
|
||||
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
|
|
|
@ -420,6 +420,22 @@ case $machine in
|
|||
tmake_file="${tmake_file} t-openbsd-thread"
|
||||
fi
|
||||
;;
|
||||
*-*-secbsd*)
|
||||
case $machine in
|
||||
*)
|
||||
secbsd_libspec="secbsd-libpthread.h"
|
||||
;;
|
||||
esac
|
||||
tm_file="${secbsd_libspec} ${cpu_type}/secbsd.h"
|
||||
tmake_file="t-libc-ok t-secbsd t-libgcc-pic"
|
||||
xm_defines=POSIX
|
||||
# for gcc in tree, we use our own fragment
|
||||
xmake_file=x-secbsd
|
||||
if test x$enable_threads = xyes; then
|
||||
thread_file='posix'
|
||||
tmake_file="${tmake_file} t-secbsd-thread"
|
||||
fi
|
||||
;;
|
||||
*-*-netbsd*)
|
||||
tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd"
|
||||
xm_defines=POSIX
|
||||
|
@ -708,6 +724,11 @@ arm*-*-openbsd*)
|
|||
tm_file="${tm_file} exec-stack.h"
|
||||
tmake_file="${tmake_file} arm/t-openbsd"
|
||||
;;
|
||||
arm*-*-secbsd*)
|
||||
tm_file="dbxelf.h elfos.h arm/secbsd1.h arm/elf.h arm/aout.h arm/arm.h secbsd.h ${tm_file}"
|
||||
tm_file="${tm_file} exec-stack.h"
|
||||
tmake_file="${tmake_file} arm/t-secbsd"
|
||||
;;
|
||||
arm*-*-netbsd*)
|
||||
tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h"
|
||||
tmake_file="t-netbsd arm/t-netbsd"
|
||||
|
@ -1187,6 +1208,20 @@ x86_64-*-openbsd*)
|
|||
tm_file="${tm_file} exec-stack.h"
|
||||
tmake_file="t-libc-ok t-openbsd i386/t-openbsd"
|
||||
;;
|
||||
i[34567]86-*-secbsd*)
|
||||
# needed to unconfuse gdb
|
||||
tmake_file="t-libc-ok t-secbsd i386/t-secbsd"
|
||||
tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h"
|
||||
tm_file="${tm_file} exec-stack.h"
|
||||
tm_file="${tm_file} secbsd.h secbsd-libpthread.h i386/secbsdelf.h"
|
||||
gas=yes
|
||||
gnu_ld=yes
|
||||
;;
|
||||
x86_64-*-secbsd*)
|
||||
tm_file="i386/biarch64.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos.h secbsd.h secbsd-libpthread.h i386/x86-64.h i386/secbsd64.h"
|
||||
tm_file="${tm_file} exec-stack.h"
|
||||
tmake_file="t-libc-ok t-secbsd i386/t-secbsd"
|
||||
;;
|
||||
i[34567]86-*-coff*)
|
||||
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h"
|
||||
;;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Earnshaw (rearnsha@armltd.co.uk).
|
||||
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
|
@ -130,7 +130,7 @@ Boston, MA 02111-1307, USA. */
|
|||
ASM_OUTPUT_INTERNAL_LABEL (STREAM, "Ltext", 0); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
|
||||
/* Output a function label definition. */
|
||||
#ifndef ASM_DECLARE_FUNCTION_NAME
|
||||
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
|
||||
|
@ -150,7 +150,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM) \
|
||||
sprintf (STRING, "*%s%s%u", LOCAL_LABEL_PREFIX, PREFIX, (unsigned int)(NUM))
|
||||
#endif
|
||||
|
||||
|
||||
/* Construct a private name. */
|
||||
#define ASM_FORMAT_PRIVATE_NAME(OUTVAR, NAME, NUMBER) \
|
||||
((OUTVAR) = (char *) alloca (strlen (NAME) + 10), \
|
||||
|
@ -207,7 +207,7 @@ Boston, MA 02111-1307, USA. */
|
|||
} \
|
||||
while (0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Output a local common block. /bin/as can't do this, so hack a
|
||||
`.space' into the bss segment. Note that this is *bad* practice,
|
||||
which is guaranteed NOT to work since it doesn't define STATIC
|
||||
|
@ -223,13 +223,13 @@ Boston, MA 02111-1307, USA. */
|
|||
} \
|
||||
while (0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Output a zero-initialized block. */
|
||||
#ifndef ASM_OUTPUT_ALIGNED_BSS
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(STREAM, DECL, NAME, SIZE, ALIGN) \
|
||||
asm_output_aligned_bss (STREAM, DECL, NAME, SIZE, ALIGN)
|
||||
#endif
|
||||
|
||||
|
||||
/* Output a source line for the debugger. */
|
||||
/* #define ASM_OUTPUT_SOURCE_LINE(STREAM,LINE) */
|
||||
|
||||
|
@ -238,7 +238,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#define ASM_OUTPUT_IDENT(STREAM,STRING) \
|
||||
asm_fprintf (STREAM, "%@ - - - ident %s\n", STRING)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "@"
|
||||
#endif
|
||||
|
|
|
@ -158,7 +158,7 @@ extern GTY(()) rtx aof_pic_label;
|
|||
#if TARGET_CPU_DEFAULT == TARGET_CPU_arm7tdmi || TARGET_CPU_DEFAULT == TARGET_CPU_arm9 || TARGET_CPU_DEFAULT == TARGET_CPU_arm9tdmi
|
||||
#define CPP_ARCH_DEFAULT_SPEC "-D__ARM_ARCH_4T__"
|
||||
#else
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_arm8 || TARGET_CPU_DEFAULT == TARGET_CPU_arm810 || TARGET_CPU_DEFAULT == TARGET_CPU_strongarm || TARGET_CPU_DEFAULT == TARGET_CPU_strongarm110 || TARGET_CPU_DEFAULT == TARGET_CPU_strongarm1100
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_arm8 || TARGET_CPU_DEFAULT == TARGET_CPU_arm810 || TARGET_CPU_DEFAULT == TARGET_CPU_strongarm || TARGET_CPU_DEFAULT == TARGET_CPU_strongarm110 || TARGET_CPU_DEFAULT == TARGET_CPU_strongarm1100
|
||||
#define CPP_ARCH_DEFAULT_SPEC "-D__ARM_ARCH_4__"
|
||||
#else
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_xscale
|
||||
|
@ -341,7 +341,7 @@ Unrecognized value in TARGET_CPU_DEFAULT.
|
|||
/* Nonzero if we need to protect the prolog from scheduling */
|
||||
#define ARM_FLAG_NO_SCHED_PRO (1 << 12)
|
||||
|
||||
/* Nonzero if a call to abort should be generated if a noreturn
|
||||
/* Nonzero if a call to abort should be generated if a noreturn
|
||||
function tries to return. */
|
||||
#define ARM_FLAG_ABORT_NORETURN (1 << 13)
|
||||
|
||||
|
@ -350,7 +350,7 @@ Unrecognized value in TARGET_CPU_DEFAULT.
|
|||
|
||||
/* Nonzero if all call instructions should be indirect. */
|
||||
#define ARM_FLAG_LONG_CALLS (1 << 15)
|
||||
|
||||
|
||||
/* Nonzero means that the target ISA is the THUMB, not the ARM. */
|
||||
#define ARM_FLAG_THUMB (1 << 16)
|
||||
|
||||
|
@ -605,13 +605,13 @@ extern int arm_is_6_or_7;
|
|||
/* Nonzero if we need to refer to the GOT with a PC-relative
|
||||
offset. In other words, generate
|
||||
|
||||
.word _GLOBAL_OFFSET_TABLE_ - [. - (.Lxx + 8)]
|
||||
.word _GLOBAL_OFFSET_TABLE_ - [. - (.Lxx + 8)]
|
||||
|
||||
rather than
|
||||
|
||||
.word _GLOBAL_OFFSET_TABLE_ - (.Lxx + 8)
|
||||
|
||||
The default is true, which matches NetBSD. Subtargets can
|
||||
The default is true, which matches NetBSD. Subtargets can
|
||||
override this if required. */
|
||||
#ifndef GOT_PCREL
|
||||
#define GOT_PCREL 1
|
||||
|
@ -662,7 +662,7 @@ extern int arm_is_6_or_7;
|
|||
in instructions that operate on numbered bit-fields. */
|
||||
#define BITS_BIG_ENDIAN 0
|
||||
|
||||
/* Define this if most significant byte of a word is the lowest numbered.
|
||||
/* Define this if most significant byte of a word is the lowest numbered.
|
||||
Most ARM processors are run in little endian mode, so that is the default.
|
||||
If you want to have it run-time selectable, change the definition in a
|
||||
cover file to be TARGET_BIG_ENDIAN. */
|
||||
|
@ -707,7 +707,7 @@ extern int arm_is_6_or_7;
|
|||
|
||||
/* Make strings word-aligned so strcpy from constants will be faster. */
|
||||
#define CONSTANT_ALIGNMENT_FACTOR (TARGET_THUMB || ! arm_arch_xscale ? 1 : 2)
|
||||
|
||||
|
||||
#define CONSTANT_ALIGNMENT(EXP, ALIGN) \
|
||||
((TREE_CODE (EXP) == STRING_CST \
|
||||
&& (ALIGN) < BITS_PER_WORD * CONSTANT_ALIGNMENT_FACTOR) \
|
||||
|
@ -747,7 +747,7 @@ extern const char * structure_size_string;
|
|||
|
||||
r4-r8 S register variable
|
||||
r9 S (rfp) register variable (real frame pointer)
|
||||
|
||||
|
||||
r10 F S (sl) stack limit (used by -mapcs-stack-check)
|
||||
r11 F S (fp) argument pointer
|
||||
r12 (ip) temp workspace
|
||||
|
@ -811,7 +811,7 @@ extern const char * structure_size_string;
|
|||
The latter must include the registers where values are returned
|
||||
and the register where structure-value addresses are passed.
|
||||
Aside from that, you can include as many other registers as you like.
|
||||
The CC is not preserved over function calls on the ARM 6, so it is
|
||||
The CC is not preserved over function calls on the ARM 6, so it is
|
||||
easier to assume this for all. SFP is preserved, since FP is. */
|
||||
#define CALL_USED_REGISTERS \
|
||||
{ \
|
||||
|
@ -852,7 +852,7 @@ extern const char * structure_size_string;
|
|||
} \
|
||||
SUBTARGET_CONDITIONAL_REGISTER_USAGE \
|
||||
}
|
||||
|
||||
|
||||
/* These are a couple of extensions to the formats accecpted
|
||||
by asm_fprintf:
|
||||
%@ prints out ASM_COMMENT_START
|
||||
|
@ -963,7 +963,7 @@ extern const char * structure_size_string;
|
|||
|
||||
/* Value should be nonzero if functions must have frame pointers.
|
||||
Zero means the frame pointer need not be set up (and parms may be accessed
|
||||
via the stack pointer) in functions that seem suitable.
|
||||
via the stack pointer) in functions that seem suitable.
|
||||
If we have to have a frame pointer we might as well make use of it.
|
||||
APCS says that the frame pointer does not need to be pushed in leaf
|
||||
functions, or simple tail call functions. */
|
||||
|
@ -999,7 +999,7 @@ extern const char * structure_size_string;
|
|||
/* The order in which register should be allocated. It is good to use ip
|
||||
since no saving is required (though calls clobber it) and it never contains
|
||||
function parameters. It is quite good to use lr since other calls may
|
||||
clobber it anyway. Allocate r0 through r3 in reverse order since r3 is
|
||||
clobber it anyway. Allocate r0 through r3 in reverse order since r3 is
|
||||
least likely to contain a function parameter; in addition results are
|
||||
returned in r0. */
|
||||
#define REG_ALLOC_ORDER \
|
||||
|
@ -1111,9 +1111,9 @@ enum reg_class
|
|||
C is the letter, and VALUE is a constant value.
|
||||
Return 1 if VALUE is in the range specified by C.
|
||||
I: immediate arithmetic operand (i.e. 8 bits shifted as required).
|
||||
J: valid indexing constants.
|
||||
J: valid indexing constants.
|
||||
K: ~value ok in rhs argument of data operand.
|
||||
L: -value ok in rhs argument of data operand.
|
||||
L: -value ok in rhs argument of data operand.
|
||||
M: 0..32, or a power of 2 (for shifts, or mult done by shift). */
|
||||
#define CONST_OK_FOR_ARM_LETTER(VALUE, C) \
|
||||
((C) == 'I' ? const_ok_for_arm (VALUE) : \
|
||||
|
@ -1138,8 +1138,8 @@ enum reg_class
|
|||
#define CONST_OK_FOR_LETTER_P(VALUE, C) \
|
||||
(TARGET_ARM ? \
|
||||
CONST_OK_FOR_ARM_LETTER (VALUE, C) : CONST_OK_FOR_THUMB_LETTER (VALUE, C))
|
||||
|
||||
/* Constant letter 'G' for the FPU immediate constants.
|
||||
|
||||
/* Constant letter 'G' for the FPU immediate constants.
|
||||
'H' means the same constant negated. */
|
||||
#define CONST_DOUBLE_OK_FOR_ARM_LETTER(X, C) \
|
||||
((C) == 'G' ? const_double_rtx_ok_for_fpu (X) : \
|
||||
|
@ -1150,7 +1150,7 @@ enum reg_class
|
|||
CONST_DOUBLE_OK_FOR_ARM_LETTER (X, C) : 0)
|
||||
|
||||
/* For the ARM, `Q' means that this is a memory operand that is just
|
||||
an offset from a register.
|
||||
an offset from a register.
|
||||
`S' means any symbol that has the SYMBOL_REF_FLAG set or a CONSTANT_POOL
|
||||
address. This means that the symbol is in the text segment and can be
|
||||
accessed without using a load. */
|
||||
|
@ -1202,7 +1202,7 @@ enum reg_class
|
|||
(((MODE) == HImode && ! arm_arch4 && true_regnum (X) == -1) \
|
||||
? GENERAL_REGS : NO_REGS) \
|
||||
: THUMB_SECONDARY_OUTPUT_RELOAD_CLASS (CLASS, MODE, X))
|
||||
|
||||
|
||||
/* If we need to load shorts byte-at-a-time, then we need a scratch. */
|
||||
#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \
|
||||
(TARGET_ARM ? \
|
||||
|
@ -1301,7 +1301,7 @@ enum reg_class
|
|||
ARM_LEGITIMIZE_RELOAD_ADDRESS (X, MODE, OPNUM, TYPE, IND_LEVELS, WIN); \
|
||||
else \
|
||||
THUMB_LEGITIMIZE_RELOAD_ADDRESS (X, MODE, OPNUM, TYPE, IND_LEVELS, WIN)
|
||||
|
||||
|
||||
/* Return the maximum number of consecutive registers
|
||||
needed to represent mode MODE in a register of class CLASS.
|
||||
ARM regs are UNITS_PER_WORD bits while FPU regs can hold any FP mode */
|
||||
|
@ -1658,7 +1658,7 @@ typedef struct
|
|||
&& (! call_used_regs [reg] \
|
||||
|| (flag_pic && (reg) == PIC_OFFSET_TABLE_REGNUM)) \
|
||||
&& !(TARGET_SINGLE_PIC_BASE && ((reg) == arm_pic_register)))
|
||||
|
||||
|
||||
/* Define the offset between two registers, one to be eliminated, and the
|
||||
other its replacement, at the start of a routine. */
|
||||
#define ARM_INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
|
||||
|
@ -1707,10 +1707,10 @@ typedef struct
|
|||
ARM_INITIAL_ELIMINATION_OFFSET (FROM, TO, OFFSET); \
|
||||
else \
|
||||
THUMB_INITIAL_ELIMINATION_OFFSET (FROM, TO, OFFSET)
|
||||
|
||||
|
||||
/* Special case handling of the location of arguments passed on the stack. */
|
||||
#define DEBUGGER_ARG_OFFSET(value, addr) value ? value : arm_debugger_arg_offset (value, addr)
|
||||
|
||||
|
||||
/* Initialize data used by insn expanders. This is called from insn_emit,
|
||||
once for every function before code is generated. */
|
||||
#define INIT_EXPANDERS arm_init_expanders ()
|
||||
|
@ -1763,7 +1763,7 @@ typedef struct
|
|||
ARM_TRAMPOLINE_TEMPLATE (FILE) \
|
||||
else \
|
||||
THUMB_TRAMPOLINE_TEMPLATE (FILE)
|
||||
|
||||
|
||||
/* Length in units of the trampoline for entering a nested function. */
|
||||
#define TRAMPOLINE_SIZE (TARGET_ARM ? 16 : 24)
|
||||
|
||||
|
@ -1852,7 +1852,7 @@ typedef struct
|
|||
On the ARM, allow any integer (invalid ones are removed later by insn
|
||||
patterns), nice doubles and symbol_refs which refer to the function's
|
||||
constant pool XXX.
|
||||
|
||||
|
||||
When generating pic allow anything. */
|
||||
#define ARM_LEGITIMATE_CONSTANT_P(X) (flag_pic || ! label_mentioned_p (X))
|
||||
|
||||
|
@ -1889,7 +1889,7 @@ typedef struct
|
|||
case SHORT_CALL_FLAG_CHAR: return 1; \
|
||||
case LONG_CALL_FLAG_CHAR: return 1; \
|
||||
case '*': return 1; \
|
||||
SUBTARGET_NAME_ENCODING_LENGTHS
|
||||
SUBTARGET_NAME_ENCODING_LENGTHS
|
||||
|
||||
/* This is how to output a reference to a user-level label named NAME.
|
||||
`assemble_name' uses this. */
|
||||
|
@ -1960,7 +1960,7 @@ typedef struct
|
|||
that wants to use this address.
|
||||
|
||||
The other macros defined here are used only in GO_IF_LEGITIMATE_ADDRESS. */
|
||||
|
||||
|
||||
/* --------------------------------arm version----------------------------- */
|
||||
#define ARM_BASE_REGISTER_RTX_P(X) \
|
||||
(GET_CODE (X) == REG && ARM_REG_OK_FOR_BASE_P (X))
|
||||
|
@ -2095,8 +2095,8 @@ typedef struct
|
|||
&& ARM_REG_OK_FOR_BASE_P (XEXP (X, 0))) \
|
||||
goto LABEL; \
|
||||
}
|
||||
|
||||
/* ---------------------thumb version----------------------------------*/
|
||||
|
||||
/* ---------------------thumb version----------------------------------*/
|
||||
#define THUMB_LEGITIMATE_OFFSET(MODE, VAL) \
|
||||
(GET_MODE_SIZE (MODE) == 1 ? ((unsigned HOST_WIDE_INT) (VAL) < 32) \
|
||||
: GET_MODE_SIZE (MODE) == 2 ? ((unsigned HOST_WIDE_INT) (VAL) < 64 \
|
||||
|
@ -2209,7 +2209,7 @@ typedef struct
|
|||
if (TARGET_ARM) \
|
||||
ARM_GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN) \
|
||||
else /* if (TARGET_THUMB) */ \
|
||||
THUMB_GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN)
|
||||
THUMB_GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN)
|
||||
/* ------------------------------------------------------------------- */
|
||||
|
||||
/* Try machine-dependent ways of modifying an illegitimate address
|
||||
|
@ -2292,14 +2292,14 @@ typedef struct
|
|||
|
||||
#define THUMB_LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) \
|
||||
if (flag_pic) \
|
||||
(X) = legitimize_pic_address (OLDX, MODE, NULL_RTX);
|
||||
|
||||
(X) = legitimize_pic_address (OLDX, MODE, NULL_RTX);
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) \
|
||||
if (TARGET_ARM) \
|
||||
ARM_LEGITIMIZE_ADDRESS (X, OLDX, MODE, WIN) \
|
||||
else \
|
||||
THUMB_LEGITIMIZE_ADDRESS (X, OLDX, MODE, WIN)
|
||||
|
||||
|
||||
/* Go to LABEL if ADDR (a legitimate address expression)
|
||||
has an effect that depends on the machine mode it is used for. */
|
||||
#define ARM_GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
|
||||
|
@ -2312,8 +2312,8 @@ typedef struct
|
|||
/* Nothing helpful to do for the Thumb */
|
||||
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
|
||||
if (TARGET_ARM) \
|
||||
ARM_GO_IF_MODE_DEPENDENT_ADDRESS (ADDR, LABEL)
|
||||
|
||||
ARM_GO_IF_MODE_DEPENDENT_ADDRESS (ADDR, LABEL)
|
||||
|
||||
|
||||
/* Specify the machine mode that this machine uses
|
||||
for the index in the tablejump instruction. */
|
||||
|
@ -2358,7 +2358,7 @@ typedef struct
|
|||
#define SLOW_BYTE_ACCESS 0
|
||||
|
||||
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) 1
|
||||
|
||||
|
||||
/* Immediate shift counts are truncated by the output routines (or was it
|
||||
the assembler?). Shift counts in a register are truncated by ARM. Note
|
||||
that the native compiler puts too large (> 32) immediate shift counts
|
||||
|
@ -2395,7 +2395,7 @@ typedef struct
|
|||
(TARGET_ARM ? 10 : \
|
||||
((GET_MODE_SIZE (M) < 4 ? 8 : 2 * GET_MODE_SIZE (M)) \
|
||||
* (CLASS == LO_REGS ? 1 : 2)))
|
||||
|
||||
|
||||
/* All address computations that can be done are free, but rtx cost returns
|
||||
the same for practically all of them. So we weight the different types
|
||||
of address here in the order (most pref first):
|
||||
|
@ -2415,16 +2415,16 @@ typedef struct
|
|||
|| GET_RTX_CLASS (GET_CODE (XEXP (X, 1))) == 'c') \
|
||||
? 1 : 0)) \
|
||||
: 4)))))
|
||||
|
||||
|
||||
#define THUMB_ADDRESS_COST(X) \
|
||||
((GET_CODE (X) == REG \
|
||||
|| (GET_CODE (X) == PLUS && GET_CODE (XEXP (X, 0)) == REG \
|
||||
&& GET_CODE (XEXP (X, 1)) == CONST_INT)) \
|
||||
? 1 : 2)
|
||||
|
||||
|
||||
#define ADDRESS_COST(X) \
|
||||
(TARGET_ARM ? ARM_ADDRESS_COST (X) : THUMB_ADDRESS_COST (X))
|
||||
|
||||
|
||||
/* Try to generate sequences that don't involve branches, we can then use
|
||||
conditional instructions */
|
||||
#define BRANCH_COST \
|
||||
|
@ -2727,14 +2727,14 @@ extern int making_const_table;
|
|||
ARM_PRINT_OPERAND_ADDRESS (STREAM, X) \
|
||||
else \
|
||||
THUMB_PRINT_OPERAND_ADDRESS (STREAM, X)
|
||||
|
||||
|
||||
/* A C expression whose value is RTL representing the value of the return
|
||||
address for the frame COUNT steps up from the current frame. */
|
||||
|
||||
#define RETURN_ADDR_RTX(COUNT, FRAME) \
|
||||
arm_return_addr (COUNT, FRAME)
|
||||
|
||||
/* Mask of the bits in the PC that contain the real return address
|
||||
/* Mask of the bits in the PC that contain the real return address
|
||||
when running in 26-bit mode. */
|
||||
#define RETURN_ADDR_MASK26 (0x03fffffc)
|
||||
|
||||
|
|
270
gnu/usr.bin/gcc/gcc/config/arm/secbsd.h
Normal file
270
gnu/usr.bin/gcc/gcc/config/arm/secbsd.h
Normal file
|
@ -0,0 +1,270 @@
|
|||
/* Definitions of target machine for GNU compiler, SecBSD/arm ELF version.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by Wasabi Systems, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Run-time Target Specification. */
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fputs (" (SecBSD/arm)", stderr);
|
||||
|
||||
/* This is used in ASM_FILE_START. */
|
||||
#undef ARM_OS_NAME
|
||||
#define ARM_OS_NAME "SecBSD"
|
||||
|
||||
/* Unsigned chars produces much better code than signed. */
|
||||
#define DEFAULT_SIGNED_CHAR 0
|
||||
|
||||
|
||||
/* This defaults us to little-endian. */
|
||||
#ifndef TARGET_ENDIAN_DEFAULT
|
||||
#define TARGET_ENDIAN_DEFAULT 0
|
||||
#endif
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
|
||||
/* strongarm family default cpu. */
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_strongarm
|
||||
|
||||
/* Default is to use APCS-32 mode. */
|
||||
|
||||
/* Default it to use ATPCS with soft-VFP. */
|
||||
#undef TARGET_DEFAULT
|
||||
/* Default it to use ATPCS with soft-VFP. */
|
||||
#undef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT \
|
||||
(ARM_FLAG_APCS_32 \
|
||||
| ARM_FLAG_SOFT_FLOAT \
|
||||
| ARM_FLAG_APCS_FRAME \
|
||||
| ARM_FLAG_ATPCS \
|
||||
| ARM_FLAG_VFP \
|
||||
| ARM_FLAG_MMU_TRAPS \
|
||||
| TARGET_ENDIAN_DEFAULT)
|
||||
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS_ELF(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef SUBTARGET_CPP_SPEC
|
||||
#define SUBTARGET_CPP_SPEC SBSD_CPP_SPEC
|
||||
|
||||
/* Because TARGET_DEFAULT sets ARM_FLAG_APCS_32 */
|
||||
#undef CPP_APCS_PC_DEFAULT_SPEC
|
||||
#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
|
||||
|
||||
/* Because TARGET_DEFAULT sets ARM_FLAG_SOFT_FLOAT */
|
||||
#undef CPP_FLOAT_DEFAULT_SPEC
|
||||
#define CPP_FLOAT_DEFAULT_SPEC "-D__SOFTFP__"
|
||||
|
||||
/* SBSD_LINK_SPEC appropriate for SecBSD. Support for GCC options
|
||||
-static, -assert, and -nostdlib. */
|
||||
#undef SBSD_LINK_SPEC
|
||||
#ifdef SBSD_NO_DYNAMIC_LIBRARIES
|
||||
#define SBSD_LINK_SPEC \
|
||||
"%{!nostdlib:%{!r*:%{!e*:-e __start}}} %{assert*}"
|
||||
#else
|
||||
#define SBSD_LINK_SPEC \
|
||||
"%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
|
||||
%{shared:-shared} %{R*} \
|
||||
%{static:-Bstatic} \
|
||||
%{!static:-Bdynamic} \
|
||||
%{assert*} \
|
||||
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
|
||||
#endif
|
||||
|
||||
#undef SUBTARGET_EXTRA_ASM_SPEC
|
||||
#define SUBTARGET_EXTRA_ASM_SPEC \
|
||||
"-matpcs %{fpic|fPIC|fpie|fPIE:-k}"
|
||||
|
||||
/* Default floating point model is soft-VFP.
|
||||
FIXME: -mhard-float currently implies FPA. */
|
||||
#undef SUBTARGET_ASM_FLOAT_SPEC
|
||||
#define SUBTARGET_ASM_FLOAT_SPEC \
|
||||
"%{mhard-float:-mfpu=fpa} \
|
||||
%{msoft-float:-mfpu=softvfp} \
|
||||
%{!mhard-float: \
|
||||
%{!msoft-float:-mfpu=softvfp}}"
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "subtarget_extra_asm_spec", SUBTARGET_EXTRA_ASM_SPEC }, \
|
||||
{ "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
|
||||
{ "secbsd_link_spec", SBSD_LINK_SPEC }, \
|
||||
{ "secbsd_entry_point", SECBSD_ENTRY_POINT },
|
||||
|
||||
#define SECBSD_ENTRY_POINT "__start"
|
||||
|
||||
/* Pass -X to the linker so that it will strip symbols starting with 'L' */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"-X %{mbig-endian:-EB} %{mlittle-endian:-EL} \
|
||||
%(secbsd_link_spec)"
|
||||
|
||||
/* Make GCC agree with <machine/_types.h>. */
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#undef INTMAX_TYPE
|
||||
#define INTMAX_TYPE "long long int"
|
||||
|
||||
#undef UINTMAX_TYPE
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* We don't have any limit on the length as out debugger is GDB. */
|
||||
#undef DBX_CONTIN_LENGTH
|
||||
|
||||
/* OpenBSD, SecBSD and NetBSD do their profiling differently to the Acorn compiler. We
|
||||
don't need a word following the mcount call; and to skip it
|
||||
requires either an assembly stub or use of fomit-frame-pointer when
|
||||
compiling the profiling functions. Since we break Acorn CC
|
||||
compatibility below a little more won't hurt. */
|
||||
|
||||
#undef ARM_FUNCTION_PROFILER
|
||||
#define ARM_FUNCTION_PROFILER(STREAM,LABELNO) \
|
||||
{ \
|
||||
asm_fprintf (STREAM, "\tmov\t%Rip, %Rlr\n"); \
|
||||
asm_fprintf (STREAM, "\tbl\t__mcount%s\n", \
|
||||
NEED_PLT_RELOC ? "(PLT)" : ""); \
|
||||
}
|
||||
|
||||
/* On the ARM `@' introduces a comment, so we must use something else
|
||||
for .type directives. */
|
||||
#undef TYPE_OPERAND_FMT
|
||||
#define TYPE_OPERAND_FMT "%%%s"
|
||||
|
||||
/* OpenBSD, SecBSD and NetBSD use the old PCC style aggregate returning conventions. */
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 1
|
||||
|
||||
/* Although not normally relevant (since by default, all aggregates
|
||||
are returned in memory) compiling some parts of libc requires
|
||||
non-APCS style struct returns. */
|
||||
#undef RETURN_IN_MEMORY
|
||||
|
||||
|
||||
/* VERY BIG NOTE: Change of structure alignment for OpenBSD|NetBSD/arm.
|
||||
There are consequences you should be aware of...
|
||||
|
||||
Normally GCC/arm uses a structure alignment of 32 for compatibility
|
||||
with armcc. This means that structures are padded to a word
|
||||
boundary. However this causes problems with bugged OpenBSD|NetBSD kernel
|
||||
code (possibly userland code as well - I have not checked every
|
||||
binary). The nature of this bugged code is to rely on sizeof()
|
||||
returning the correct size of various structures rounded to the
|
||||
nearest byte (SCSI and ether code are two examples, the vm system
|
||||
is another). This code breaks when the structure alignment is 32
|
||||
as sizeof() will report a word=rounded size. By changing the
|
||||
structure alignment to 8. GCC will conform to what is expected by
|
||||
OpenBSD|NetBSD.
|
||||
|
||||
This has several side effects that should be considered.
|
||||
1. Structures will only be aligned to the size of the largest member.
|
||||
i.e. structures containing only bytes will be byte aligned.
|
||||
structures containing shorts will be half word alinged.
|
||||
structures containing ints will be word aligned.
|
||||
|
||||
This means structures should be padded to a word boundary if
|
||||
alignment of 32 is required for byte structures etc.
|
||||
|
||||
2. A potential performance penalty may exist if strings are no longer
|
||||
word aligned. GCC will not be able to use word load/stores to copy
|
||||
short strings.
|
||||
|
||||
This modification is not encouraged but with the present state of the
|
||||
OpenBSD|NetBSD source tree it is currently the only solution that meets the
|
||||
requirements. */
|
||||
|
||||
#undef DEFAULT_STRUCTURE_SIZE_BOUNDARY
|
||||
#define DEFAULT_STRUCTURE_SIZE_BOUNDARY 8
|
||||
|
||||
/* Emit code to set up a trampoline and synchronize the caches. */
|
||||
#undef INITIALIZE_TRAMPOLINE
|
||||
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
|
||||
do \
|
||||
{ \
|
||||
emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 8)), \
|
||||
(CXT)); \
|
||||
emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 12)), \
|
||||
(FNADDR)); \
|
||||
emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__clear_cache"), \
|
||||
0, VOIDmode, 2, TRAMP, Pmode, \
|
||||
plus_constant (TRAMP, TRAMPOLINE_SIZE), Pmode); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Clear the instruction cache from `BEG' to `END'. This makes a
|
||||
call to the ARM_SYNC_ICACHE architecture specific syscall. */
|
||||
#define CLEAR_INSN_CACHE(BEG, END) \
|
||||
do \
|
||||
{ \
|
||||
extern int sysarch(int number, void *args); \
|
||||
struct { \
|
||||
unsigned int addr; \
|
||||
int len; \
|
||||
} s; \
|
||||
s.addr = (unsigned int)(BEG); \
|
||||
s.len = (END) - (BEG); \
|
||||
(void) sysarch (0, &s); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Provide a STARTFILE_SPEC appropriate for SecBSD ELF. Here we
|
||||
provide support for the special GCC option -static. On ELF
|
||||
targets, we also add the crtbegin.o file, which provides part
|
||||
of the support for getting C++ file-scope static objects
|
||||
constructed before entering "main". */
|
||||
|
||||
#define SECBSD_STARTFILE_SPEC \
|
||||
"%{!shared: \
|
||||
%{pg:gcrt0%O%s} \
|
||||
%{!pg: \
|
||||
%{p:gcrt0%O%s} \
|
||||
%{!p:crt0%O%s}}} \
|
||||
%:if-exists(crti%O%s) \
|
||||
%{static:%:if-exists-else(crtbeginT%O%s crtbegin%O%s)} \
|
||||
%{!static: \
|
||||
%{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}}"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC SECBSD_STARTFILE_SPEC
|
||||
|
||||
/* Provide an ENDFILE_SPEC appropriate for SecBSD ELF. Here we
|
||||
add crtend.o, which provides part of the support for getting
|
||||
C++ file-scope static objects deconstructed after exiting "main". */
|
||||
|
||||
#define SECBSD_ENDFILE_SPEC \
|
||||
"%{!shared:crtend%O%s} %{shared:crtendS%O%s} \
|
||||
%:if-exists(crtn%O%s)"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC SECBSD_ENDFILE_SPEC
|
||||
|
22
gnu/usr.bin/gcc/gcc/config/arm/secbsd1.h
Normal file
22
gnu/usr.bin/gcc/gcc/config/arm/secbsd1.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* Definitions of target machine for GNU compiler, SecBSD/arm ELF version.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* StrongARM family default cpu. */
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_strongarm
|
7
gnu/usr.bin/gcc/gcc/config/arm/t-secbsd
Normal file
7
gnu/usr.bin/gcc/gcc/config/arm/t-secbsd
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Just for these, we omit the frame pointer since it makes such a big
|
||||
# difference. It is then pointless adding debugging.
|
||||
TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fpic
|
||||
LIBGCC2_DEBUG_CFLAGS = -g0
|
||||
|
||||
# Don't build enquire
|
||||
ENQUIRE=
|
105
gnu/usr.bin/gcc/gcc/config/i386/secbsd.h
Normal file
105
gnu/usr.bin/gcc/gcc/config/i386/secbsd.h
Normal file
|
@ -0,0 +1,105 @@
|
|||
/* Configuration for an SecBSD i386 target.
|
||||
Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
#define TARGET_VERSION fprintf (stderr, " (SecBSD/i386)");
|
||||
|
||||
/* This goes away when the math-emulator is fixed */
|
||||
#undef TARGET_SUBTARGET_DEFAULT
|
||||
#define TARGET_SUBTARGET_DEFAULT \
|
||||
(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS_COMMON(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Layout of source language data types. */
|
||||
|
||||
/* This must agree with <machine/_types.h> */
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#undef INTMAX_TYPE
|
||||
#define INTMAX_TYPE "long long int"
|
||||
|
||||
#undef UINTMAX_TYPE
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* Assembler format: overall framework. */
|
||||
|
||||
#undef ASM_APP_ON
|
||||
#define ASM_APP_ON "#APP\n"
|
||||
|
||||
#undef ASM_APP_OFF
|
||||
#define ASM_APP_OFF "#NO_APP\n"
|
||||
|
||||
/* Stack & calling: aggregate returns. */
|
||||
|
||||
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
|
||||
we want to retain compatibility with older gcc versions. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Kludgy test: when gas is upgraded, it will have p2align, and no problems
|
||||
with nops. */
|
||||
#ifndef HAVE_GAS_MAX_SKIP_P2ALIGN
|
||||
/* i386 SecBSD still uses an older gas that doesn't insert nops by default
|
||||
when the .align directive demands to insert extra space in the text
|
||||
segment. */
|
||||
#undef ASM_OUTPUT_ALIGN
|
||||
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
|
||||
if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
|
||||
#endif
|
||||
|
||||
/* Stack & calling: profiling. */
|
||||
|
||||
/* SecBSD's profiler recovers all information from the stack pointer.
|
||||
The icky part is not here, but in machine/profile.h. */
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fputs (flag_pic ? "\tcall mcount@PLT\n": "\tcall mcount\n", FILE);
|
||||
|
||||
/* Assembler format: exception region output. */
|
||||
|
||||
/* All configurations that don't use elf must be explicit about not using
|
||||
dwarf unwind information. egcs doesn't try too hard to check internal
|
||||
configuration files... */
|
||||
#define DWARF2_UNWIND_INFO 0
|
||||
|
||||
#undef ASM_PREFERRED_EH_DATA_FORMAT
|
||||
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START ";#"
|
||||
|
||||
/* SecBSD gas currently does not support quad, so do not use it. */
|
||||
#undef ASM_QUAD
|
127
gnu/usr.bin/gcc/gcc/config/i386/secbsd64.h
Normal file
127
gnu/usr.bin/gcc/gcc/config/i386/secbsd64.h
Normal file
|
@ -0,0 +1,127 @@
|
|||
/* Configuration for an SecBSD x86-64 target.
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (SecBSD/x86-64 ELF)")
|
||||
|
||||
/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
|
||||
libraries compiled with the native cc, so undef it. */
|
||||
#undef NO_DOLLAR_IN_LABEL
|
||||
|
||||
/* Override the default comment-starter of "/". */
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
/* Run-time target specifications */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS_ELF(); \
|
||||
if (TARGET_64BIT) \
|
||||
SECBSD_OS_CPP_BUILTINS_LP64(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* As an elf system, we need crtbegin/crtend stuff. */
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "\
|
||||
%{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
|
||||
crtbegin%O%s} %{shared:crtbeginS%O%s}"
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
|
||||
|
||||
/* Layout of source language data types. */
|
||||
|
||||
/* This must agree with <machine/_types.h> */
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#undef INTMAX_TYPE
|
||||
#define INTMAX_TYPE "long long int"
|
||||
|
||||
#undef UINTMAX_TYPE
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* Assembler format: overall framework. */
|
||||
|
||||
#undef ASM_APP_ON
|
||||
#define ASM_APP_ON "#APP\n"
|
||||
|
||||
#undef ASM_APP_OFF
|
||||
#define ASM_APP_OFF "#NO_APP\n"
|
||||
|
||||
#undef SET_ASM_OP
|
||||
#define SET_ASM_OP "\t.set\t"
|
||||
|
||||
/* The following macros were originally stolen from i386v4.h.
|
||||
These have to be defined to get PIC code correct. */
|
||||
|
||||
/* Assembler format: dispatch tables. */
|
||||
|
||||
/* Assembler format: sections. */
|
||||
|
||||
/* Stack & calling: aggregate returns. */
|
||||
|
||||
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
|
||||
we want to retain compatibility with older gcc versions. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Stack & calling: profiling. */
|
||||
|
||||
/* SecBSD's profiler recovers all information from the stack pointer.
|
||||
The icky part is not here, but in machine/profile.h. */
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE);
|
||||
|
||||
/* Assembler format: exception region output. */
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
|
||||
%{shared:-shared} %{R*} \
|
||||
%{static:-Bstatic} \
|
||||
%{!static:-Bdynamic} \
|
||||
%{assert*} \
|
||||
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
|
||||
|
||||
#define SBSD_HAS_CORRECT_SPECS
|
||||
|
||||
#undef JUMP_TABLES_IN_TEXT_SECTION
|
||||
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
|
139
gnu/usr.bin/gcc/gcc/config/i386/secbsdelf.h
Normal file
139
gnu/usr.bin/gcc/gcc/config/i386/secbsdelf.h
Normal file
|
@ -0,0 +1,139 @@
|
|||
/* Configuration for an SecBSD i386 target.
|
||||
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
|
||||
libraries compiled with the native cc, so undef it. */
|
||||
#undef NO_DOLLAR_IN_LABEL
|
||||
|
||||
/* Override the default comment-starter of "/". */
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
#undef DBX_REGISTER_NUMBER
|
||||
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
|
||||
|
||||
/* This goes away when the math-emulator is fixed */
|
||||
#undef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT \
|
||||
(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
|
||||
|
||||
/* Run-time target specifications */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS_ELF(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* As an elf system, we need crtbegin/crtend stuff. */
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "\
|
||||
%{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
|
||||
crtbegin%O%s} %{shared:crtbeginS%O%s}"
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
|
||||
|
||||
/* Layout of source language data types. */
|
||||
|
||||
/* This must agree with <machine/_types.h> */
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#undef INTMAX_TYPE
|
||||
#define INTMAX_TYPE "long long int"
|
||||
|
||||
#undef UINTMAX_TYPE
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
|
||||
/* Assembler format: overall framework. */
|
||||
|
||||
#undef ASM_APP_ON
|
||||
#define ASM_APP_ON "#APP\n"
|
||||
|
||||
#undef ASM_APP_OFF
|
||||
#define ASM_APP_OFF "#NO_APP\n"
|
||||
|
||||
#undef SET_ASM_OP
|
||||
#define SET_ASM_OP "\t.set\t"
|
||||
|
||||
/* The following macros were originally stolen from i386v4.h.
|
||||
These have to be defined to get PIC code correct. */
|
||||
|
||||
/* Assembler format: dispatch tables. */
|
||||
|
||||
/* Assembler format: sections. */
|
||||
|
||||
/* Stack & calling: aggregate returns. */
|
||||
|
||||
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
|
||||
we want to retain compatibility with older gcc versions. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
|
||||
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
|
||||
if ((LOG) != 0) {\
|
||||
if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
|
||||
else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Stack & calling: profiling. */
|
||||
|
||||
/* SecBSD's profiler recovers all information from the stack pointer.
|
||||
The icky part is not here, but in machine/profile.h. */
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE);
|
||||
|
||||
/* Assembler format: exception region output. */
|
||||
|
||||
/* Assembler format: alignment output. */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */
|
||||
|
||||
/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
|
||||
%{shared:-shared} %{R*} \
|
||||
%{static:-Bstatic} \
|
||||
%{!static:-Bdynamic} \
|
||||
%{assert*} \
|
||||
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
|
||||
|
||||
#define OBSD_HAS_CORRECT_SPECS
|
||||
|
||||
/* pick up defines for mprotect (used in TRANSFER_FROM_TRANPOLINE) */
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
6
gnu/usr.bin/gcc/gcc/config/i386/t-secbsd
Normal file
6
gnu/usr.bin/gcc/gcc/config/i386/t-secbsd
Normal file
|
@ -0,0 +1,6 @@
|
|||
# gdb gets confused if pic code is linked with non pic
|
||||
# We cope by building variants of libgcc.
|
||||
MULTILIB_OPTIONS = fpic
|
||||
MULTILIB_MATCHES=fpic=fPIC
|
||||
LIBGCC = stmp-multilib
|
||||
INSTALL_LIBGCC = install-multilib
|
23
gnu/usr.bin/gcc/gcc/config/secbsd-libpthread.h
Normal file
23
gnu/usr.bin/gcc/gcc/config/secbsd-libpthread.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* LIB_SPEC appropriate for SecBSD. Include -lpthread if -pthread is
|
||||
specified on the command line. */
|
||||
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define SBSD_LIB_SPEC "%{pthread:-lpthread%{!shared:%{p|pg:_p}}} %{!shared:-lc%{p|pg:_p}}"
|
||||
|
23
gnu/usr.bin/gcc/gcc/config/secbsd-oldgas.h
Normal file
23
gnu/usr.bin/gcc/gcc/config/secbsd-oldgas.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* Generic settings for a.out SecBSD systems.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by David E. O'Brien <obrien@FreeBSD.org>.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
#define SBSD_OLD_GAS
|
345
gnu/usr.bin/gcc/gcc/config/secbsd.h
Normal file
345
gnu/usr.bin/gcc/gcc/config/secbsd.h
Normal file
|
@ -0,0 +1,345 @@
|
|||
/* Base configuration file for all SecBSD targets.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Common SecBSD configuration.
|
||||
All SecBSD architectures include this file, which is intended as
|
||||
a repository for common defines.
|
||||
|
||||
Some defines are common to all architectures, a few of them are
|
||||
triggered by SBSD_* guards, so that we won't override architecture
|
||||
defaults by mistakes.
|
||||
|
||||
SBSD_HAS_CORRECT_SPECS:
|
||||
another mechanism provides correct specs already.
|
||||
SBSD_NO_DYNAMIC_LIBRARIES:
|
||||
no implementation of dynamic libraries.
|
||||
SBSD_OLD_GAS:
|
||||
older flavor of gas which needs help for PIC.
|
||||
SBSD_HAS_DECLARE_FUNCTION_NAME, SBSD_HAS_DECLARE_FUNCTION_SIZE,
|
||||
SBSD_HAS_DECLARE_OBJECT:
|
||||
PIC support, FUNCTION_NAME/FUNCTION_SIZE are independent, whereas
|
||||
the corresponding logic for OBJECTS is necessarily coupled.
|
||||
SBSD_HAS_CORRECT_ASM_OPS:
|
||||
another mechanism provides correct ASM_OP values already.
|
||||
|
||||
There are also a few `default' defines such as ASM_WEAKEN_LABEL,
|
||||
intended as common ground for arch that don't provide
|
||||
anything suitable. */
|
||||
|
||||
/* SECBSD_NATIVE is defined only when gcc is configured as part of
|
||||
the SecBSD source tree, specifically through Makefile.bsd-wrapper.
|
||||
|
||||
In such a case the include path can be trimmed as there is no
|
||||
distinction between system includes and gcc includes. */
|
||||
|
||||
/* This configuration method, namely Makefile.bsd-wrapper and
|
||||
SECBSD_NATIVE is NOT recommended for building cross-compilers. */
|
||||
|
||||
/* SECBSD_CROSS is only recommended for building cross-compilers which
|
||||
target a SecBSD system (kernel/userland) */
|
||||
|
||||
#if defined(SECBSD_NATIVE) || defined(SECBSD_CROSS)
|
||||
|
||||
/* The compiler is configured with ONLY the gcc/g++ standard headers. */
|
||||
#undef INCLUDE_DEFAULTS
|
||||
#ifdef CROSS_COMPILE
|
||||
#define INCLUDE_DEFAULTS \
|
||||
{ \
|
||||
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0 }, \
|
||||
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 },\
|
||||
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0 }, \
|
||||
{ GPLUSPLUS_INCLUDE_DIR "/..", STANDARD_INCLUDE_COMPONENT, 0, 0, 0 }, \
|
||||
{ 0, 0, 0, 0, 0 } \
|
||||
}
|
||||
#else
|
||||
#define INCLUDE_DEFAULTS \
|
||||
{ \
|
||||
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0 }, \
|
||||
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 },\
|
||||
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0 }, \
|
||||
{ STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 0 }, \
|
||||
{ 0, 0, 0, 0, 0 } \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Under SecBSD, the normal location of the various *crt*.o files is the
|
||||
/usr/lib directory. */
|
||||
#undef STANDARD_STARTFILE_PREFIX
|
||||
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Controlling the compilation driver. */
|
||||
|
||||
/* TARGET_OS_CPP_BUILTINS() common to all SecBSD targets. */
|
||||
#define SECBSD_OS_CPP_BUILTINS_COMMON() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("__SecBSD__"); \
|
||||
builtin_define ("__unix__"); \
|
||||
builtin_define ("__ANSI_COMPAT"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=bsd"); \
|
||||
builtin_assert ("system=SecBSD"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* TARGET_OS_CPP_BUILTINS() common to all SecBSD ELF targets. */
|
||||
#define SECBSD_OS_CPP_BUILTINS_ELF() \
|
||||
do \
|
||||
{ \
|
||||
SECBSD_OS_CPP_BUILTINS_COMMON(); \
|
||||
builtin_define ("__ELF__"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* TARGET_OS_CPP_BUILTINS() common to all LP64 SecBSD targets. */
|
||||
#define SECBSD_OS_CPP_BUILTINS_LP64() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define ("_LP64"); \
|
||||
builtin_define ("__LP64__"); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* CPP_SPEC appropriate for SecBSD. We deal with -posix and -pthread.
|
||||
XXX the way threads are handled currently is not very satisfying,
|
||||
since all code must be compiled with -pthread to work.
|
||||
This two-stage defines makes it easy to pick that for targets that
|
||||
have subspecs. */
|
||||
#ifdef CPP_CPU_SPEC
|
||||
#define SBSD_CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
#else
|
||||
#define SBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
#endif
|
||||
|
||||
#ifndef SBSD_HAS_CORRECT_SPECS
|
||||
|
||||
#ifndef SBSD_NO_DYNAMIC_LIBRARIES
|
||||
#undef SWITCH_TAKES_ARG
|
||||
#define SWITCH_TAKES_ARG(CHAR) \
|
||||
(DEFAULT_SWITCH_TAKES_ARG (CHAR) \
|
||||
|| (CHAR) == 'R')
|
||||
#endif
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC SBSD_CPP_SPEC
|
||||
|
||||
#ifdef SBSD_OLD_GAS
|
||||
/* ASM_SPEC appropriate for SecBSD. For some architectures, SecBSD
|
||||
still uses a special flavor of gas that needs to be told when generating
|
||||
pic code. */
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "%{fpic:-k} %{fPIC:-k -K} %|"
|
||||
|
||||
#else
|
||||
/* Since we use gas, stdin -> - is a good idea, but we don't want to
|
||||
override native specs just for that. */
|
||||
#ifndef ASM_SPEC
|
||||
#define ASM_SPEC "%|"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* LINK_SPEC appropriate for SecBSD. Support for GCC options
|
||||
-static, -assert, and -nostdlib. */
|
||||
#undef LINK_SPEC
|
||||
#ifdef SBSD_NO_DYNAMIC_LIBRARIES
|
||||
#define LINK_SPEC \
|
||||
"%{g:%{!nostdlib:-L/usr/lib/debug}} %{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{assert*}"
|
||||
#else
|
||||
#define LINK_SPEC \
|
||||
"%{g:%{!nostdlib:-L/usr/lib/debug}} %{!shared:%{!nostdlib:%{!r*:%{!e*:-e start}}}} %{shared:-Bshareable -x} -dc -dp %{R*} %{static:-Bstatic} %{assert*}"
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||||
#endif
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC SBSD_LIB_SPEC
|
||||
#endif
|
||||
|
||||
|
||||
/* Runtime target specification. */
|
||||
|
||||
/* You must redefine CPP_PREDEFINES in any arch specific file. */
|
||||
#undef CPP_PREDEFINES
|
||||
|
||||
/* Implicit calls to library routines. */
|
||||
|
||||
/* Use memcpy and memset instead of bcopy and bzero. */
|
||||
#ifndef TARGET_MEM_FUNCTIONS
|
||||
#define TARGET_MEM_FUNCTIONS
|
||||
#endif
|
||||
|
||||
/* Miscellaneous parameters. */
|
||||
|
||||
/* Controlling debugging info: dbx options. */
|
||||
|
||||
/* Don't use the `xsTAG;' construct in DBX output; SecBSD systems that
|
||||
use DBX don't support it. */
|
||||
#define DBX_NO_XREFS
|
||||
|
||||
|
||||
/* Support of shared libraries, mostly imported from svr4.h through netbsd. */
|
||||
/* Two differences from svr4.h:
|
||||
- we use . - _func instead of a local label,
|
||||
- we put extra spaces in expressions such as
|
||||
.type _func , @function
|
||||
This is more readable for a human being and confuses c++filt less. */
|
||||
|
||||
/* Assembler format: output and generation of labels. */
|
||||
|
||||
/* Define the strings used for the .type and .size directives.
|
||||
These strings generally do not vary from one system running SecBSD
|
||||
to another, but if a given system needs to use different pseudo-op
|
||||
names for these, they may be overridden in the arch specific file. */
|
||||
|
||||
/* SecBSD assembler is hacked to have .type & .size support even in a.out
|
||||
format object files. Functions size are supported but not activated
|
||||
yet (look for GRACE_PERIOD_EXPIRED in gas/config/obj-aout.c).
|
||||
SET_ASM_OP is needed for attribute alias to work. */
|
||||
|
||||
#ifndef SBSD_HAS_CORRECT_ASM_OPS
|
||||
|
||||
#undef TYPE_ASM_OP
|
||||
#undef SIZE_ASM_OP
|
||||
#undef SET_ASM_OP
|
||||
#undef GLOBAL_ASM_OP
|
||||
|
||||
#define TYPE_ASM_OP "\t.type\t"
|
||||
#define SIZE_ASM_OP "\t.size\t"
|
||||
#define SET_ASM_OP "\t.set\t"
|
||||
#define GLOBAL_ASM_OP "\t.globl\t"
|
||||
|
||||
#endif
|
||||
|
||||
/* The following macro defines the format used to output the second
|
||||
operand of the .type assembler directive. */
|
||||
#undef TYPE_OPERAND_FMT
|
||||
#define TYPE_OPERAND_FMT "@%s"
|
||||
|
||||
/* Provision if extra assembler code is needed to declare a function's result
|
||||
(taken from svr4, not needed yet actually). */
|
||||
#ifndef ASM_DECLARE_RESULT
|
||||
#define ASM_DECLARE_RESULT(FILE, RESULT)
|
||||
#endif
|
||||
|
||||
/* These macros generate the special .type and .size directives which
|
||||
are used to set the corresponding fields of the linker symbol table
|
||||
entries under SecBSD. These macros also have to output the starting
|
||||
labels for the relevant functions/objects. */
|
||||
|
||||
#ifndef SBSD_HAS_DECLARE_FUNCTION_NAME
|
||||
/* Extra assembler code needed to declare a function properly.
|
||||
Some assemblers may also need to also have something extra said
|
||||
about the function's return value. We allow for that here. */
|
||||
#undef ASM_DECLARE_FUNCTION_NAME
|
||||
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
|
||||
do { \
|
||||
ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
|
||||
ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
|
||||
ASM_OUTPUT_LABEL(FILE, NAME); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef SBSD_HAS_DECLARE_FUNCTION_SIZE
|
||||
/* Declare the size of a function. */
|
||||
#undef ASM_DECLARE_FUNCTION_SIZE
|
||||
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
|
||||
do { \
|
||||
if (!flag_inhibit_size_directive) \
|
||||
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef SBSD_HAS_DECLARE_OBJECT
|
||||
/* Extra assembler code needed to declare an object properly. */
|
||||
#undef ASM_DECLARE_OBJECT_NAME
|
||||
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
|
||||
do { \
|
||||
HOST_WIDE_INT size; \
|
||||
ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
|
||||
size_directive_output = 0; \
|
||||
if (!flag_inhibit_size_directive \
|
||||
&& (DECL) && DECL_SIZE (DECL)) \
|
||||
{ \
|
||||
size_directive_output = 1; \
|
||||
size = int_size_in_bytes (TREE_TYPE (DECL)); \
|
||||
ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \
|
||||
} \
|
||||
ASM_OUTPUT_LABEL (FILE, NAME); \
|
||||
} while (0)
|
||||
|
||||
/* Output the size directive for a decl in rest_of_decl_compilation
|
||||
in the case where we did not do so before the initializer.
|
||||
Once we find the error_mark_node, we know that the value of
|
||||
size_directive_output was set by ASM_DECLARE_OBJECT_NAME
|
||||
when it was run for the same decl. */
|
||||
#undef ASM_FINISH_DECLARE_OBJECT
|
||||
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
|
||||
do { \
|
||||
const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
|
||||
HOST_WIDE_INT size; \
|
||||
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
|
||||
&& ! AT_END && TOP_LEVEL \
|
||||
&& DECL_INITIAL (DECL) == error_mark_node \
|
||||
&& !size_directive_output) \
|
||||
{ \
|
||||
size_directive_output = 1; \
|
||||
size = int_size_in_bytes (TREE_TYPE (DECL)); \
|
||||
ASM_OUTPUT_SIZE_DIRECTIVE (FILE, name, size); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Those are `generic' ways to weaken/globalize a label. We shouldn't need
|
||||
to override a processor specific definition. Hence, #ifndef ASM_*
|
||||
In case overriding turns out to be needed, one can always #undef ASM_*
|
||||
before including this file. */
|
||||
|
||||
/* Tell the assembler that a symbol is weak. */
|
||||
/* Note: netbsd arm32 assembler needs a .globl here. An override may
|
||||
be needed when/if we go for arm32 support. */
|
||||
#ifndef ASM_WEAKEN_LABEL
|
||||
#define ASM_WEAKEN_LABEL(FILE,NAME) \
|
||||
do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
|
||||
fputc ('\n', FILE); } while (0)
|
||||
#endif
|
||||
|
||||
/* Storage layout. */
|
||||
|
||||
|
||||
/* bug work around: we don't want to support #pragma weak, but the current
|
||||
code layout needs HANDLE_PRAGMA_WEAK asserted for __attribute((weak)) to
|
||||
work. On the other hand, we don't define HANDLE_PRAGMA_WEAK directly,
|
||||
as this depends on a few other details as well... */
|
||||
#define HANDLE_SYSV_PRAGMA 1
|
||||
|
||||
/* Disable the use of unsafe builtin functions, (strcat, strcpy), making
|
||||
* them easier to spot in the object files.
|
||||
*/
|
||||
#define NO_UNSAFE_BUILTINS
|
||||
|
||||
/* pick up defines for mprotect (used in TRANSFER_FROM_TRAMPOLINE) */
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
|
@ -1003,7 +1003,7 @@ GLOBAL(sdivsi3_i4):
|
|||
#ifdef L_sdivsi3
|
||||
/* __SH4_SINGLE_ONLY__ keeps this part for link compatibility with
|
||||
sh3e code. */
|
||||
#if (! defined(__SH4__) && ! defined (__SH4_SINGLE__)) || defined (__linux__) || defined (__OpenBSD__)
|
||||
#if (! defined(__SH4__) && ! defined (__SH4_SINGLE__)) || defined (__linux__) || defined (__OpenBSD__) || defined (__SecBSD__)
|
||||
!!
|
||||
!! Steve Chamberlain
|
||||
!! sac@cygnus.com
|
||||
|
@ -1389,7 +1389,7 @@ L1:
|
|||
#ifdef L_udivsi3
|
||||
/* __SH4_SINGLE_ONLY__ keeps this part for link compatibility with
|
||||
sh3e code. */
|
||||
#if (! defined(__SH4__) && ! defined (__SH4_SINGLE__)) || defined (__linux__) || defined (__OpenBSD__)
|
||||
#if (! defined(__SH4__) && ! defined (__SH4_SINGLE__)) || defined (__linux__) || defined (__OpenBSD__) || defined (__SecBSD__)
|
||||
|
||||
!! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
|
||||
.global GLOBAL(udivsi3)
|
||||
|
|
11
gnu/usr.bin/gcc/gcc/config/t-secbsd
Normal file
11
gnu/usr.bin/gcc/gcc/config/t-secbsd
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Don't run fixproto
|
||||
STMP_FIXPROTO =
|
||||
|
||||
# We don't need GCC's own include files.
|
||||
USER_H =
|
||||
|
||||
# Use unwind-dw2-fde-openbsd
|
||||
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-openbsd.c \
|
||||
$(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
|
||||
LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c \
|
||||
unwind-dw2-fde-glibc.c
|
5
gnu/usr.bin/gcc/gcc/config/t-secbsd-thread
Normal file
5
gnu/usr.bin/gcc/gcc/config/t-secbsd-thread
Normal file
|
@ -0,0 +1,5 @@
|
|||
# This is currently needed to compile libgcc2 for threads support
|
||||
TARGET_LIBGCC2_CFLAGS=-pthread
|
||||
#T_CFLAGS=-pthread
|
||||
#T_CPPFLAGS=-pthread
|
||||
|
11
gnu/usr.bin/gcc/gcc/config/x-secbsd
Normal file
11
gnu/usr.bin/gcc/gcc/config/x-secbsd
Normal file
|
@ -0,0 +1,11 @@
|
|||
# enforce yacc...
|
||||
BISON=yacc
|
||||
# no built libiberty
|
||||
LIBIBERTY=
|
||||
BUILD_LIBIBERTY=
|
||||
# because it's a `system lib'
|
||||
CLIB=-liberty
|
||||
# and so, we get obstack from there too
|
||||
OBSTACK=
|
||||
# don't build c++filt from there
|
||||
DEMANGLER_PROG=
|
|
@ -57,7 +57,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#include <machine/ansi.h>
|
||||
#endif
|
||||
/* On FreeBSD 5 and OpenBSD 3.9, machine/ansi.h does not exist anymore... */
|
||||
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) || defined(__OpenBSD__)
|
||||
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) || defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
#include <sys/_types.h>
|
||||
#endif
|
||||
|
||||
|
@ -201,7 +201,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
|
|||
#define ___int_size_t_h
|
||||
#define _GCC_SIZE_T
|
||||
#define _SIZET_
|
||||
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) || defined(__OpenBSD__)
|
||||
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) || defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
/* __size_t is a typedef on FreeBSD 5 and OpenBSD 3.9!, must not trash it. */
|
||||
#else
|
||||
#define __size_t
|
||||
|
|
|
@ -3187,7 +3187,7 @@ PerlIOStdio_invalidate_fileno(pTHX_ FILE *f)
|
|||
*/
|
||||
f->_file = -1;
|
||||
return 1;
|
||||
#elif defined(__OpenBSD__)
|
||||
#elif defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
/* There may be a better way on OpenBSD:
|
||||
- we could insert a dummy func in the _close function entry
|
||||
f->_close = (int (*)(void *)) dummy_close;
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
* incompatible with everyone else. To make OpenBSD happy, we have to
|
||||
* memzero out certain structures before calling the functions.
|
||||
*/
|
||||
# if defined(__OpenBSD__)
|
||||
# if defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
# define REENTR_MEMZERO(a,b) memzero(a,b)
|
||||
# else
|
||||
# define REENTR_MEMZERO(a,b) 0
|
||||
|
|
|
@ -131,7 +131,7 @@ print $h <<EOF;
|
|||
* incompatible with everyone else. To make OpenBSD happy, we have to
|
||||
* memzero out certain structures before calling the functions.
|
||||
*/
|
||||
# if defined(__OpenBSD__)
|
||||
# if defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
# define REENTR_MEMZERO(a,b) memzero(a,b)
|
||||
# else
|
||||
# define REENTR_MEMZERO(a,b) 0
|
||||
|
|
|
@ -4975,7 +4975,7 @@ Perl_parse_unicode_opts(pTHX_ const char **popt)
|
|||
U32
|
||||
Perl_seed(pTHX)
|
||||
{
|
||||
#if defined(__OpenBSD__)
|
||||
#if defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
return arc4random();
|
||||
#else
|
||||
/*
|
||||
|
|
|
@ -117,7 +117,7 @@ case "$host_os" in
|
|||
with_gnu_ld=no
|
||||
fi
|
||||
;;
|
||||
openbsd*)
|
||||
openbsd* | secbsd*)
|
||||
with_gnu_ld=no
|
||||
;;
|
||||
esac
|
||||
|
@ -346,7 +346,7 @@ else
|
|||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
openbsd*)
|
||||
openbsd* | secbsd*)
|
||||
hardcode_direct=yes
|
||||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
|
@ -492,7 +492,7 @@ case "$host_os" in
|
|||
;;
|
||||
nto-qnx)
|
||||
;;
|
||||
openbsd*)
|
||||
openbsd* | secbsd*)
|
||||
;;
|
||||
os2*)
|
||||
libname_spec='$name'
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#ifdef __svr4__
|
||||
#include <sys/statvfs.h>
|
||||
#else
|
||||
#if defined(__FreeBSD__) || defined(__bsdi__) || defined(__OpenBSD__)
|
||||
#if defined(__FreeBSD__) || defined(__bsdi__) || defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
#include <sys/mount.h>
|
||||
#else
|
||||
#if defined(_IBMR2)
|
||||
|
|
|
@ -62,6 +62,10 @@
|
|||
#define SYSTEM_ID_DEFAULT "OpenBSD"
|
||||
#endif
|
||||
|
||||
#ifdef __SecBSD__
|
||||
#define SYSTEM_ID_DEFAULT "SecBSD"
|
||||
#endif
|
||||
|
||||
#ifdef __NetBSD__
|
||||
#define SYSTEM_ID_DEFAULT "NetBSD"
|
||||
#endif
|
||||
|
@ -70,18 +74,6 @@
|
|||
#define SYSTEM_ID_DEFAULT "LINUX"
|
||||
#endif
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#define SYSTEM_ID_DEFAULT "FreeBSD"
|
||||
#endif
|
||||
|
||||
#ifdef __OpenBSD__
|
||||
#define SYSTEM_ID_DEFAULT "OpenBSD"
|
||||
#endif
|
||||
|
||||
#ifdef __NetBSD__
|
||||
#define SYSTEM_ID_DEFAULT "NetBSD"
|
||||
#endif
|
||||
|
||||
#ifndef SYSTEM_ID_DEFAULT
|
||||
#define SYSTEM_ID_DEFAULT "Unknown"
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: syscall.S,v 1.8 2016/05/07 19:05:21 guenther Exp $ */
|
||||
/* $OpenBSD: syscall.S,v 1.9 2023/05/11 19:35:50 guenther Exp $ */
|
||||
/* $NetBSD: syscall.S,v 1.2 2002/06/03 18:30:33 fvdl Exp $ */
|
||||
|
||||
/*-
|
||||
|
@ -39,4 +39,18 @@
|
|||
|
||||
#include "SYS.h"
|
||||
|
||||
RSYSCALL(syscall)
|
||||
SYSENTRY(syscall)
|
||||
RETGUARD_SETUP(_thread_sys_syscall, r11)
|
||||
#ifdef _RET_PROTECTOR
|
||||
pushq 8(%rsp) /* repush 6th argument */
|
||||
#endif
|
||||
RETGUARD_PUSH(r11)
|
||||
SYSTRAP(syscall)
|
||||
HANDLE_ERRNO;
|
||||
RETGUARD_POP(r11)
|
||||
#ifdef _RET_PROTECTOR
|
||||
addq $8,%rsp /* repush 6th argument */
|
||||
#endif
|
||||
RETGUARD_CHECK(_thread_sys_syscall, r11)
|
||||
ret
|
||||
SYSCALL_END(syscall)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: malloc.c,v 1.282 2023/04/21 06:19:40 jsg Exp $ */
|
||||
/* $OpenBSD: malloc.c,v 1.283 2023/05/10 07:58:06 otto Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2008, 2010, 2011, 2016, 2023 Otto Moerbeek <otto@drijf.net>
|
||||
* Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org>
|
||||
|
@ -264,24 +264,6 @@ static void malloc_exit(void);
|
|||
(sz) = (uintptr_t)(r)->p & MALLOC_PAGEMASK, \
|
||||
(sz) = ((sz) == 0 ? (r)->size : B2SIZE((sz) - 1))
|
||||
|
||||
static inline void
|
||||
_MALLOC_LEAVE(struct dir_info *d)
|
||||
{
|
||||
if (d->malloc_mt) {
|
||||
d->active--;
|
||||
_MALLOC_UNLOCK(d->mutex);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
_MALLOC_ENTER(struct dir_info *d)
|
||||
{
|
||||
if (d->malloc_mt) {
|
||||
_MALLOC_LOCK(d->mutex);
|
||||
d->active++;
|
||||
}
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
hash(void *p)
|
||||
{
|
||||
|
@ -879,9 +861,7 @@ map(struct dir_info *d, size_t sz, int zero_fill)
|
|||
return p;
|
||||
}
|
||||
if (psz <= 1) {
|
||||
_MALLOC_LEAVE(d);
|
||||
p = MMAP(cache->max * sz, d->mmap_flag);
|
||||
_MALLOC_ENTER(d);
|
||||
if (p != MAP_FAILED) {
|
||||
STATS_ADD(d->malloc_used, cache->max * sz);
|
||||
cache->length = cache->max - 1;
|
||||
|
@ -901,9 +881,7 @@ map(struct dir_info *d, size_t sz, int zero_fill)
|
|||
}
|
||||
|
||||
}
|
||||
_MALLOC_LEAVE(d);
|
||||
p = MMAP(sz, d->mmap_flag);
|
||||
_MALLOC_ENTER(d);
|
||||
if (p != MAP_FAILED)
|
||||
STATS_ADD(d->malloc_used, sz);
|
||||
/* zero fill not needed */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $OpenBSD: Makefile,v 1.125 2023/04/28 16:30:14 tb Exp $
|
||||
# $OpenBSD: Makefile,v 1.129 2023/05/07 14:39:55 tb Exp $
|
||||
|
||||
LIB= crypto
|
||||
LIBREBUILD=y
|
||||
|
@ -16,7 +16,7 @@ LCRYPTO_SRC= ${.CURDIR}
|
|||
|
||||
CFLAGS+= -Wall -Wundef
|
||||
.if ${COMPILER_VERSION:L} == "clang"
|
||||
CFLAGS+= -Werror
|
||||
CFLAGS+= -Werror -Wshadow
|
||||
.endif
|
||||
CFLAGS+= -DLIBRESSL_INTERNAL -DLIBRESSL_CRYPTO_INTERNAL
|
||||
.ifdef NAMESPACE
|
||||
|
@ -606,6 +606,7 @@ SRCS+= rsa_prn.c
|
|||
SRCS+= rsa_pss.c
|
||||
SRCS+= rsa_saos.c
|
||||
SRCS+= rsa_sign.c
|
||||
SRCS+= rsa_x931.c
|
||||
|
||||
# sha/
|
||||
SRCS+= sha1.c
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: bn_bpsw.c,v 1.8 2022/11/26 16:08:51 tb Exp $ */
|
||||
/* $OpenBSD: bn_bpsw.c,v 1.10 2023/05/10 21:05:24 tb Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2022 Martin Grenouilloux <martin.grenouilloux@lse.epita.fr>
|
||||
* Copyright (c) 2022 Theo Buehler <tb@openbsd.org>
|
||||
|
@ -156,7 +156,7 @@ bn_lucas(BIGNUM *U, BIGNUM *V, const BIGNUM *k, const BIGNUM *D,
|
|||
*/
|
||||
|
||||
static int
|
||||
bn_strong_lucas_test(int *is_prime, const BIGNUM *n, const BIGNUM *D,
|
||||
bn_strong_lucas_test(int *is_pseudoprime, const BIGNUM *n, const BIGNUM *D,
|
||||
BN_CTX *ctx)
|
||||
{
|
||||
BIGNUM *k, *U, *V;
|
||||
|
@ -194,7 +194,7 @@ bn_strong_lucas_test(int *is_prime, const BIGNUM *n, const BIGNUM *D,
|
|||
goto err;
|
||||
|
||||
if (BN_is_zero(U) || BN_is_zero(V)) {
|
||||
*is_prime = 1;
|
||||
*is_pseudoprime = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -208,7 +208,7 @@ bn_strong_lucas_test(int *is_prime, const BIGNUM *n, const BIGNUM *D,
|
|||
goto err;
|
||||
|
||||
if (BN_is_zero(V)) {
|
||||
*is_prime = 1;
|
||||
*is_pseudoprime = 1;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
@ -217,7 +217,7 @@ bn_strong_lucas_test(int *is_prime, const BIGNUM *n, const BIGNUM *D,
|
|||
* If we got here, n is definitely composite.
|
||||
*/
|
||||
|
||||
*is_prime = 0;
|
||||
*is_pseudoprime = 0;
|
||||
|
||||
done:
|
||||
ret = 1;
|
||||
|
@ -235,7 +235,7 @@ bn_strong_lucas_test(int *is_prime, const BIGNUM *n, const BIGNUM *D,
|
|||
*/
|
||||
|
||||
static int
|
||||
bn_strong_lucas_selfridge(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
||||
bn_strong_lucas_selfridge(int *is_pseudoprime, const BIGNUM *n, BN_CTX *ctx)
|
||||
{
|
||||
BIGNUM *D, *two;
|
||||
int is_perfect_square, jacobi_symbol, sign;
|
||||
|
@ -247,7 +247,7 @@ bn_strong_lucas_selfridge(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
|||
if (!bn_is_perfect_square(&is_perfect_square, n, ctx))
|
||||
goto err;
|
||||
if (is_perfect_square) {
|
||||
*is_prime = 0;
|
||||
*is_pseudoprime = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -278,7 +278,7 @@ bn_strong_lucas_selfridge(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
|||
|
||||
/* n and D have prime factors in common. */
|
||||
if (jacobi_symbol == 0) {
|
||||
*is_prime = 0;
|
||||
*is_pseudoprime = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -288,7 +288,7 @@ bn_strong_lucas_selfridge(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
|||
BN_set_negative(D, sign == -1);
|
||||
}
|
||||
|
||||
if (!bn_strong_lucas_test(is_prime, n, D, ctx))
|
||||
if (!bn_strong_lucas_test(is_pseudoprime, n, D, ctx))
|
||||
goto err;
|
||||
|
||||
done:
|
||||
|
@ -301,32 +301,113 @@ bn_strong_lucas_selfridge(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
|||
}
|
||||
|
||||
/*
|
||||
* Miller-Rabin primality test for base 2.
|
||||
* Fermat criterion in Miller-Rabin test.
|
||||
*
|
||||
* Check whether 1 < base < n - 1 witnesses that n is composite. For prime n:
|
||||
*
|
||||
* * Fermat's little theorem: base^(n-1) = 1 (mod n).
|
||||
* * The only square roots of 1 (mod n) are 1 and -1.
|
||||
*
|
||||
* Calculate base^((n-1)/2) by writing n - 1 = k * 2^s with odd k. Iteratively
|
||||
* compute power = (base^k)^(2^(s-1)) by successive squaring of base^k.
|
||||
*
|
||||
* If power ever reaches -1, base^(n-1) is equal to 1 and n is a pseudoprime
|
||||
* for base. If power reaches 1 before -1 during successive squaring, we have
|
||||
* an unexpected square root of 1 and n is composite. Otherwise base^(n-1) != 1,
|
||||
* and n is composite.
|
||||
*/
|
||||
|
||||
static int
|
||||
bn_miller_rabin_base_2(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
||||
bn_fermat(int *is_pseudoprime, const BIGNUM *n, const BIGNUM *n_minus_one,
|
||||
const BIGNUM *k, int s, const BIGNUM *base, BN_CTX *ctx, BN_MONT_CTX *mctx)
|
||||
{
|
||||
BIGNUM *n_minus_one, *k, *x;
|
||||
int i, s;
|
||||
BIGNUM *power;
|
||||
int ret = 0;
|
||||
int i;
|
||||
|
||||
BN_CTX_start(ctx);
|
||||
|
||||
if ((power = BN_CTX_get(ctx)) == NULL)
|
||||
goto err;
|
||||
|
||||
/* Sanity check: ensure that 1 < base < n - 1. */
|
||||
if (BN_cmp(base, BN_value_one()) <= 0 || BN_cmp(base, n_minus_one) >= 0)
|
||||
goto err;
|
||||
|
||||
if (!BN_mod_exp_mont_ct(power, base, k, n, ctx, mctx))
|
||||
goto err;
|
||||
|
||||
if (BN_is_one(power) || BN_cmp(power, n_minus_one) == 0) {
|
||||
*is_pseudoprime = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Loop invariant: power is neither 1 nor -1 (mod n). */
|
||||
for (i = 1; i < s; i++) {
|
||||
if (!BN_mod_sqr(power, power, n, ctx))
|
||||
goto err;
|
||||
|
||||
/* n is a pseudoprime for base. */
|
||||
if (BN_cmp(power, n_minus_one) == 0) {
|
||||
*is_pseudoprime = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* n is composite: there's a square root of unity != 1 or -1. */
|
||||
if (BN_is_one(power)) {
|
||||
*is_pseudoprime = 0;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If we get here, n is definitely composite: base^(n-1) != 1.
|
||||
*/
|
||||
|
||||
*is_pseudoprime = 0;
|
||||
|
||||
done:
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Miller-Rabin primality test for base 2 and for |rounds| of random bases.
|
||||
* On success: is_pseudoprime == 0 implies that n is composite.
|
||||
*/
|
||||
|
||||
static int
|
||||
bn_miller_rabin(int *is_pseudoprime, const BIGNUM *n, BN_CTX *ctx,
|
||||
size_t rounds)
|
||||
{
|
||||
BN_MONT_CTX *mctx = NULL;
|
||||
BIGNUM *base, *k, *n_minus_one, *three;
|
||||
size_t i;
|
||||
int s;
|
||||
int ret = 0;
|
||||
|
||||
BN_CTX_start(ctx);
|
||||
|
||||
if ((n_minus_one = BN_CTX_get(ctx)) == NULL)
|
||||
if ((base = BN_CTX_get(ctx)) == NULL)
|
||||
goto err;
|
||||
if ((k = BN_CTX_get(ctx)) == NULL)
|
||||
goto err;
|
||||
if ((x = BN_CTX_get(ctx)) == NULL)
|
||||
if ((n_minus_one = BN_CTX_get(ctx)) == NULL)
|
||||
goto err;
|
||||
if ((three = BN_CTX_get(ctx)) == NULL)
|
||||
goto err;
|
||||
|
||||
if (BN_is_word(n, 2) || BN_is_word(n, 3)) {
|
||||
*is_prime = 1;
|
||||
*is_pseudoprime = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (BN_cmp(n, BN_value_one()) <= 0 || !BN_is_odd(n)) {
|
||||
*is_prime = 0;
|
||||
*is_pseudoprime = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -344,43 +425,57 @@ bn_miller_rabin_base_2(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
|||
goto err;
|
||||
|
||||
/*
|
||||
* If 2^k is 1 or -1 (mod n) then n is a 2-pseudoprime.
|
||||
* Montgomery setup for n.
|
||||
*/
|
||||
|
||||
if (!BN_set_word(x, 2))
|
||||
goto err;
|
||||
if (!BN_mod_exp_ct(x, x, k, n, ctx))
|
||||
if ((mctx = BN_MONT_CTX_new()) == NULL)
|
||||
goto err;
|
||||
|
||||
if (BN_is_one(x) || BN_cmp(x, n_minus_one) == 0) {
|
||||
*is_prime = 1;
|
||||
if (!BN_MONT_CTX_set(mctx, n, ctx))
|
||||
goto err;
|
||||
|
||||
/*
|
||||
* Perform a Miller-Rabin test for base 2 as required by BPSW.
|
||||
*/
|
||||
|
||||
if (!BN_set_word(base, 2))
|
||||
goto err;
|
||||
|
||||
if (!bn_fermat(is_pseudoprime, n, n_minus_one, k, s, base, ctx, mctx))
|
||||
goto err;
|
||||
if (!*is_pseudoprime)
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*
|
||||
* If 2^{2^i k} == -1 (mod n) for some 1 <= i < s, then n is a
|
||||
* 2-pseudoprime.
|
||||
* Perform Miller-Rabin tests with random 3 <= base < n - 1 to reduce
|
||||
* risk of false positives in BPSW.
|
||||
*/
|
||||
|
||||
for (i = 1; i < s; i++) {
|
||||
if (!BN_mod_sqr(x, x, n, ctx))
|
||||
if (!BN_set_word(three, 3))
|
||||
goto err;
|
||||
|
||||
for (i = 0; i < rounds; i++) {
|
||||
if (!bn_rand_interval(base, three, n_minus_one))
|
||||
goto err;
|
||||
if (BN_cmp(x, n_minus_one) == 0) {
|
||||
*is_prime = 1;
|
||||
|
||||
if (!bn_fermat(is_pseudoprime, n, n_minus_one, k, s, base, ctx,
|
||||
mctx))
|
||||
goto err;
|
||||
if (!*is_pseudoprime)
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If we got here, n is definitely composite.
|
||||
* If we got here, we have a Miller-Rabin pseudoprime.
|
||||
*/
|
||||
|
||||
*is_prime = 0;
|
||||
*is_pseudoprime = 1;
|
||||
|
||||
done:
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
BN_MONT_CTX_free(mctx);
|
||||
BN_CTX_end(ctx);
|
||||
|
||||
return ret;
|
||||
|
@ -392,7 +487,8 @@ bn_miller_rabin_base_2(int *is_prime, const BIGNUM *n, BN_CTX *ctx)
|
|||
*/
|
||||
|
||||
int
|
||||
bn_is_prime_bpsw(int *is_prime, const BIGNUM *n, BN_CTX *in_ctx)
|
||||
bn_is_prime_bpsw(int *is_pseudoprime, const BIGNUM *n, BN_CTX *in_ctx,
|
||||
size_t rounds)
|
||||
{
|
||||
BN_CTX *ctx = NULL;
|
||||
BN_ULONG mod;
|
||||
|
@ -400,12 +496,12 @@ bn_is_prime_bpsw(int *is_prime, const BIGNUM *n, BN_CTX *in_ctx)
|
|||
int ret = 0;
|
||||
|
||||
if (BN_is_word(n, 2)) {
|
||||
*is_prime = 1;
|
||||
*is_pseudoprime = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (BN_cmp(n, BN_value_one()) <= 0 || !BN_is_odd(n)) {
|
||||
*is_prime = 0;
|
||||
*is_pseudoprime = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -414,7 +510,7 @@ bn_is_prime_bpsw(int *is_prime, const BIGNUM *n, BN_CTX *in_ctx)
|
|||
if ((mod = BN_mod_word(n, primes[i])) == (BN_ULONG)-1)
|
||||
goto err;
|
||||
if (mod == 0) {
|
||||
*is_prime = BN_is_word(n, primes[i]);
|
||||
*is_pseudoprime = BN_is_word(n, primes[i]);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
@ -424,14 +520,12 @@ bn_is_prime_bpsw(int *is_prime, const BIGNUM *n, BN_CTX *in_ctx)
|
|||
if (ctx == NULL)
|
||||
goto err;
|
||||
|
||||
if (!bn_miller_rabin_base_2(is_prime, n, ctx))
|
||||
if (!bn_miller_rabin(is_pseudoprime, n, ctx, rounds))
|
||||
goto err;
|
||||
if (!*is_prime)
|
||||
if (!*is_pseudoprime)
|
||||
goto done;
|
||||
|
||||
/* XXX - Miller-Rabin for random bases? See FIPS 186-4, Table C.1. */
|
||||
|
||||
if (!bn_strong_lucas_selfridge(is_prime, n, ctx))
|
||||
if (!bn_strong_lucas_selfridge(is_pseudoprime, n, ctx))
|
||||
goto err;
|
||||
|
||||
done:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: bn_convert.c,v 1.6 2023/04/19 11:14:04 jsing Exp $ */
|
||||
/* $OpenBSD: bn_convert.c,v 1.8 2023/05/09 05:15:55 jsing Exp $ */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -68,6 +68,7 @@
|
|||
#include <openssl/err.h>
|
||||
|
||||
#include "bn_local.h"
|
||||
#include "bytestring.h"
|
||||
|
||||
static const char hex_digits[] = "0123456789ABCDEF";
|
||||
|
||||
|
@ -270,85 +271,82 @@ BN_asc2bn(BIGNUM **bn, const char *a)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* Must 'free' the returned data */
|
||||
char *
|
||||
BN_bn2dec(const BIGNUM *a)
|
||||
BN_bn2dec(const BIGNUM *bn)
|
||||
{
|
||||
int i = 0, num, bn_data_num, ok = 0;
|
||||
char *buf = NULL;
|
||||
char *p;
|
||||
BIGNUM *t = NULL;
|
||||
BN_ULONG *bn_data = NULL, *lp;
|
||||
int started = 0;
|
||||
BIGNUM *tmp = NULL;
|
||||
uint8_t *data = NULL;
|
||||
size_t data_len = 0;
|
||||
uint8_t *s = NULL;
|
||||
size_t s_len;
|
||||
BN_ULONG v, w;
|
||||
uint8_t c;
|
||||
CBB cbb;
|
||||
CBS cbs;
|
||||
int i;
|
||||
|
||||
if (BN_is_zero(a)) {
|
||||
buf = malloc(BN_is_negative(a) + 2);
|
||||
if (buf == NULL) {
|
||||
BNerror(ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
p = buf;
|
||||
if (BN_is_negative(a))
|
||||
*p++ = '-';
|
||||
*p++ = '0';
|
||||
*p++ = '\0';
|
||||
return (buf);
|
||||
}
|
||||
if (!CBB_init(&cbb, 0))
|
||||
goto err;
|
||||
|
||||
/* get an upper bound for the length of the decimal integer
|
||||
* num <= (BN_num_bits(a) + 1) * log(2)
|
||||
* <= 3 * BN_num_bits(a) * 0.1001 + log(2) + 1 (rounding error)
|
||||
* <= BN_num_bits(a)/10 + BN_num_bits/1000 + 1 + 1
|
||||
if ((tmp = BN_dup(bn)) == NULL)
|
||||
goto err;
|
||||
|
||||
/*
|
||||
* Divide the BIGNUM by a large multiple of 10, then break the remainder
|
||||
* into decimal digits. This produces a reversed string of digits,
|
||||
* potentially with leading zeroes.
|
||||
*/
|
||||
i = BN_num_bits(a) * 3;
|
||||
num = (i / 10 + i / 1000 + 1) + 1;
|
||||
bn_data_num = num / BN_DEC_NUM + 1;
|
||||
bn_data = reallocarray(NULL, bn_data_num, sizeof(BN_ULONG));
|
||||
buf = malloc(num + 3);
|
||||
if ((buf == NULL) || (bn_data == NULL)) {
|
||||
BNerror(ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
while (!BN_is_zero(tmp)) {
|
||||
if ((w = BN_div_word(tmp, BN_DEC_CONV)) == -1)
|
||||
goto err;
|
||||
for (i = 0; i < BN_DEC_NUM; i++) {
|
||||
v = w % 10;
|
||||
if (!CBB_add_u8(&cbb, '0' + v))
|
||||
goto err;
|
||||
w /= 10;
|
||||
}
|
||||
}
|
||||
if ((t = BN_dup(a)) == NULL)
|
||||
if (!CBB_finish(&cbb, &data, &data_len))
|
||||
goto err;
|
||||
|
||||
#define BUF_REMAIN (num+3 - (size_t)(p - buf))
|
||||
p = buf;
|
||||
lp = bn_data;
|
||||
if (BN_is_negative(t))
|
||||
*p++ = '-';
|
||||
if (data_len > SIZE_MAX - 3)
|
||||
goto err;
|
||||
if (!CBB_init(&cbb, data_len + 3))
|
||||
goto err;
|
||||
|
||||
while (!BN_is_zero(t)) {
|
||||
if (lp - bn_data >= bn_data_num)
|
||||
if (BN_is_negative(bn)) {
|
||||
if (!CBB_add_u8(&cbb, '-'))
|
||||
goto err;
|
||||
*lp = BN_div_word(t, BN_DEC_CONV);
|
||||
if (*lp == (BN_ULONG)-1)
|
||||
}
|
||||
|
||||
/* Reverse digits and trim leading zeroes. */
|
||||
CBS_init(&cbs, data, data_len);
|
||||
while (CBS_len(&cbs) > 0) {
|
||||
if (!CBS_get_last_u8(&cbs, &c))
|
||||
goto err;
|
||||
lp++;
|
||||
}
|
||||
lp--;
|
||||
/* We now have a series of blocks, BN_DEC_NUM chars
|
||||
* in length, where the last one needs truncation.
|
||||
* The blocks need to be reversed in order. */
|
||||
snprintf(p, BUF_REMAIN, BN_DEC_FMT1, *lp);
|
||||
while (*p)
|
||||
p++;
|
||||
while (lp != bn_data) {
|
||||
lp--;
|
||||
snprintf(p, BUF_REMAIN, BN_DEC_FMT2, *lp);
|
||||
while (*p)
|
||||
p++;
|
||||
}
|
||||
ok = 1;
|
||||
|
||||
err:
|
||||
free(bn_data);
|
||||
BN_free(t);
|
||||
if (!ok && buf) {
|
||||
free(buf);
|
||||
buf = NULL;
|
||||
if (!started && c == '0')
|
||||
continue;
|
||||
if (!CBB_add_u8(&cbb, c))
|
||||
goto err;
|
||||
started = 1;
|
||||
}
|
||||
|
||||
return (buf);
|
||||
if (!started) {
|
||||
if (!CBB_add_u8(&cbb, '0'))
|
||||
goto err;
|
||||
}
|
||||
if (!CBB_add_u8(&cbb, '\0'))
|
||||
goto err;
|
||||
if (!CBB_finish(&cbb, &s, &s_len))
|
||||
goto err;
|
||||
|
||||
err:
|
||||
BN_free(tmp);
|
||||
CBB_cleanup(&cbb);
|
||||
freezero(data, data_len);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -420,39 +418,49 @@ err:
|
|||
return (0);
|
||||
}
|
||||
|
||||
/* Must 'free' the returned data */
|
||||
char *
|
||||
BN_bn2hex(const BIGNUM *a)
|
||||
BN_bn2hex(const BIGNUM *bn)
|
||||
{
|
||||
int i, j, v, z = 0;
|
||||
char *buf;
|
||||
char *p;
|
||||
int started = 0;
|
||||
uint8_t *s = NULL;
|
||||
size_t s_len;
|
||||
BN_ULONG v, w;
|
||||
int i, j;
|
||||
CBB cbb;
|
||||
|
||||
buf = malloc(BN_is_negative(a) + a->top * BN_BYTES * 2 + 2);
|
||||
if (buf == NULL) {
|
||||
BNerror(ERR_R_MALLOC_FAILURE);
|
||||
if (!CBB_init(&cbb, 0))
|
||||
goto err;
|
||||
|
||||
if (BN_is_negative(bn)) {
|
||||
if (!CBB_add_u8(&cbb, '-'))
|
||||
goto err;
|
||||
}
|
||||
p = buf;
|
||||
if (BN_is_negative(a))
|
||||
*p++ = '-';
|
||||
if (BN_is_zero(a))
|
||||
*p++ = '0';
|
||||
for (i = a->top - 1; i >=0; i--) {
|
||||
if (BN_is_zero(bn)) {
|
||||
if (!CBB_add_u8(&cbb, '0'))
|
||||
goto err;
|
||||
}
|
||||
for (i = bn->top - 1; i >= 0; i--) {
|
||||
w = bn->d[i];
|
||||
for (j = BN_BITS2 - 8; j >= 0; j -= 8) {
|
||||
/* strip leading zeros */
|
||||
v = ((int)(a->d[i] >> (long)j)) & 0xff;
|
||||
if (z || (v != 0)) {
|
||||
*p++ = hex_digits[v >> 4];
|
||||
*p++ = hex_digits[v & 0x0f];
|
||||
z = 1;
|
||||
}
|
||||
v = (w >> j) & 0xff;
|
||||
if (!started && v == 0)
|
||||
continue;
|
||||
if (!CBB_add_u8(&cbb, hex_digits[v >> 4]))
|
||||
goto err;
|
||||
if (!CBB_add_u8(&cbb, hex_digits[v & 0xf]))
|
||||
goto err;
|
||||
started = 1;
|
||||
}
|
||||
}
|
||||
*p = '\0';
|
||||
if (!CBB_add_u8(&cbb, '\0'))
|
||||
goto err;
|
||||
if (!CBB_finish(&cbb, &s, &s_len))
|
||||
goto err;
|
||||
|
||||
err:
|
||||
return (buf);
|
||||
err:
|
||||
CBB_cleanup(&cbb);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: bn_exp.c,v 1.45 2023/03/30 14:21:10 tb Exp $ */
|
||||
/* $OpenBSD: bn_exp.c,v 1.46 2023/05/09 05:38:11 tb Exp $ */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -194,7 +194,7 @@ BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
|
|||
bits = BN_num_bits(p);
|
||||
if (bits == 0) {
|
||||
/* x**0 mod 1 is still zero. */
|
||||
if (BN_is_one(m)) {
|
||||
if (BN_abs_is_word(m, 1)) {
|
||||
ret = 1;
|
||||
BN_zero(r);
|
||||
} else
|
||||
|
@ -402,7 +402,7 @@ BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
|
|||
bits = BN_num_bits(p);
|
||||
if (bits == 0) {
|
||||
/* x**0 mod 1 is still zero. */
|
||||
if (BN_is_one(m)) {
|
||||
if (BN_abs_is_word(m, 1)) {
|
||||
ret = 1;
|
||||
BN_zero(rr);
|
||||
} else
|
||||
|
@ -658,7 +658,7 @@ BN_mod_exp_mont_internal(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIG
|
|||
bits = BN_num_bits(p);
|
||||
if (bits == 0) {
|
||||
/* x**0 mod 1 is still zero. */
|
||||
if (BN_is_one(m)) {
|
||||
if (BN_abs_is_word(m, 1)) {
|
||||
ret = 1;
|
||||
BN_zero(rr);
|
||||
} else
|
||||
|
@ -843,7 +843,7 @@ BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p, const BIGNUM *m,
|
|||
bits = BN_num_bits(p);
|
||||
if (bits == 0) {
|
||||
/* x**0 mod 1 is still zero. */
|
||||
if (BN_is_one(m)) {
|
||||
if (BN_abs_is_word(m, 1)) {
|
||||
ret = 1;
|
||||
BN_zero(rr);
|
||||
} else
|
||||
|
@ -968,7 +968,7 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
|
|||
bits = BN_num_bits(p);
|
||||
if (bits == 0) {
|
||||
/* x**0 mod 1 is still zero. */
|
||||
if (BN_is_one(m)) {
|
||||
if (BN_abs_is_word(m, 1)) {
|
||||
ret = 1;
|
||||
BN_zero(r);
|
||||
} else
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: bn_local.h,v 1.21 2023/04/25 17:59:41 tb Exp $ */
|
||||
/* $OpenBSD: bn_local.h,v 1.22 2023/05/10 12:21:55 tb Exp $ */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -324,7 +324,7 @@ int bn_copy(BIGNUM *dst, const BIGNUM *src);
|
|||
int bn_isqrt(BIGNUM *out_sqrt, int *out_perfect, const BIGNUM *n, BN_CTX *ctx);
|
||||
int bn_is_perfect_square(int *out_perfect, const BIGNUM *n, BN_CTX *ctx);
|
||||
|
||||
int bn_is_prime_bpsw(int *is_prime, const BIGNUM *n, BN_CTX *in_ctx);
|
||||
int bn_is_prime_bpsw(int *is_prime, const BIGNUM *n, BN_CTX *ctx, size_t rounds);
|
||||
|
||||
__END_HIDDEN_DECLS
|
||||
#endif /* !HEADER_BN_LOCAL_H */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: bn_prime.c,v 1.31 2023/04/25 19:57:59 tb Exp $ */
|
||||
/* $OpenBSD: bn_prime.c,v 1.32 2023/05/10 12:21:55 tb Exp $ */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -195,12 +195,12 @@ BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add,
|
|||
goto err;
|
||||
|
||||
if (!safe) {
|
||||
if (!bn_is_prime_bpsw(&is_prime, ret, ctx))
|
||||
if (!bn_is_prime_bpsw(&is_prime, ret, ctx, 1))
|
||||
goto err;
|
||||
if (!is_prime)
|
||||
goto loop;
|
||||
} else {
|
||||
if (!bn_is_prime_bpsw(&is_prime, ret, ctx))
|
||||
if (!bn_is_prime_bpsw(&is_prime, ret, ctx, 1))
|
||||
goto err;
|
||||
if (!is_prime)
|
||||
goto loop;
|
||||
|
@ -213,7 +213,7 @@ BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add,
|
|||
if (!BN_rshift1(p, ret))
|
||||
goto err;
|
||||
|
||||
if (!bn_is_prime_bpsw(&is_prime, p, ctx))
|
||||
if (!bn_is_prime_bpsw(&is_prime, p, ctx, 1))
|
||||
goto err;
|
||||
if (!is_prime)
|
||||
goto loop;
|
||||
|
@ -243,8 +243,14 @@ BN_is_prime_fasttest_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,
|
|||
{
|
||||
int is_prime;
|
||||
|
||||
if (checks < 0)
|
||||
return -1;
|
||||
|
||||
if (checks == BN_prime_checks)
|
||||
checks = BN_prime_checks_for_size(BN_num_bits(a));
|
||||
|
||||
/* XXX - tickle BN_GENCB in bn_is_prime_bpsw(). */
|
||||
if (!bn_is_prime_bpsw(&is_prime, a, ctx_passed))
|
||||
if (!bn_is_prime_bpsw(&is_prime, a, ctx_passed, checks))
|
||||
return -1;
|
||||
|
||||
return is_prime;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $OpenBSD: cert.pem,v 1.25 2022/07/11 09:05:16 sthen Exp $
|
||||
# $OpenBSD: cert.pem,v 1.26 2023/05/06 17:55:38 tb Exp $
|
||||
### /C=ES/CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
|
||||
|
||||
=== /C=ES/CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
|
||||
|
@ -932,6 +932,93 @@ u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
|
|||
4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Certainly
|
||||
|
||||
=== /C=US/O=Certainly/CN=Certainly Root E1
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
06:25:33:b1:47:03:33:27:5c:f9:8d:9a:b9:bf:cc:f8
|
||||
Signature Algorithm: ecdsa-with-SHA384
|
||||
Validity
|
||||
Not Before: Apr 1 00:00:00 2021 GMT
|
||||
Not After : Apr 1 00:00:00 2046 GMT
|
||||
Subject: C=US, O=Certainly, CN=Certainly Root E1
|
||||
X509v3 extensions:
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Subject Key Identifier:
|
||||
F3:28:18:CB:64:75:EE:29:2A:EB:ED:AE:23:58:38:85:EB:C8:22:07
|
||||
SHA1 Fingerprint=F9:E1:6D:DC:01:89:CF:D5:82:45:63:3E:C5:37:7D:C2:EB:93:6F:2B
|
||||
SHA256 Fingerprint=B4:58:5F:22:E4:AC:75:6A:4E:86:12:A1:36:1C:5D:9D:03:1A:93:FD:84:FE:BB:77:8F:A3:06:8B:0F:C4:2D:C2
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw
|
||||
CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu
|
||||
bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ
|
||||
BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s
|
||||
eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK
|
||||
+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2
|
||||
QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E
|
||||
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4
|
||||
hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm
|
||||
ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG
|
||||
BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=US/O=Certainly/CN=Certainly Root R1
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
8e:0f:f9:4b:90:71:68:65:33:54:f4:d4:44:39:b7:e0
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Apr 1 00:00:00 2021 GMT
|
||||
Not After : Apr 1 00:00:00 2046 GMT
|
||||
Subject: C=US, O=Certainly, CN=Certainly Root R1
|
||||
X509v3 extensions:
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Subject Key Identifier:
|
||||
E0:AA:3F:25:8D:9F:44:5C:C1:3A:E8:2E:AE:77:4C:84:3E:67:0C:F4
|
||||
SHA1 Fingerprint=A0:50:EE:0F:28:71:F4:27:B2:12:6D:6F:50:96:25:BA:CC:86:42:AF
|
||||
SHA256 Fingerprint=77:B8:2C:D8:64:4C:43:05:F7:AC:C5:CB:15:6B:45:67:50:04:03:3D:51:C6:0C:62:02:A8:E0:C3:34:67:D3:A0
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
OV+KmalBWQewLK8=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### certSIGN
|
||||
|
||||
=== /C=RO/O=certSIGN/OU=certSIGN ROOT CA
|
||||
|
@ -1193,6 +1280,61 @@ W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
|
|||
hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Comodo CA Limited
|
||||
|
||||
=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Jan 1 00:00:00 2004 GMT
|
||||
Not After : Dec 31 23:59:59 2028 GMT
|
||||
Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 CRL Distribution Points:
|
||||
|
||||
Full Name:
|
||||
URI:http://crl.comodoca.com/AAACertificateServices.crl
|
||||
|
||||
Full Name:
|
||||
URI:http://crl.comodo.net/AAACertificateServices.crl
|
||||
|
||||
SHA1 Fingerprint=D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
|
||||
SHA256 Fingerprint=D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
|
||||
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
||||
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
|
||||
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
|
||||
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
|
||||
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
|
||||
GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
|
||||
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
|
||||
3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
|
||||
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
|
||||
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
|
||||
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
|
||||
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
||||
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
|
||||
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
|
||||
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
|
||||
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
|
||||
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
||||
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
|
||||
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
|
||||
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
|
||||
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### COMODO CA Limited
|
||||
|
||||
=== /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO Certification Authority
|
||||
|
@ -1336,61 +1478,6 @@ QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
|
|||
NVOFBkpdn627G190
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Comodo CA Limited
|
||||
|
||||
=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Jan 1 00:00:00 2004 GMT
|
||||
Not After : Dec 31 23:59:59 2028 GMT
|
||||
Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 CRL Distribution Points:
|
||||
|
||||
Full Name:
|
||||
URI:http://crl.comodoca.com/AAACertificateServices.crl
|
||||
|
||||
Full Name:
|
||||
URI:http://crl.comodo.net/AAACertificateServices.crl
|
||||
|
||||
SHA1 Fingerprint=D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
|
||||
SHA256 Fingerprint=D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
|
||||
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
||||
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
|
||||
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
|
||||
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
|
||||
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
|
||||
GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
|
||||
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
|
||||
3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
|
||||
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
|
||||
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
|
||||
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
|
||||
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
||||
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
|
||||
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
|
||||
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
|
||||
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
|
||||
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
||||
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
|
||||
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
|
||||
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
|
||||
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### D-Trust GmbH
|
||||
|
||||
=== /C=DE/O=D-Trust GmbH/CN=D-TRUST BR Root CA 1 2020
|
||||
|
@ -2058,6 +2145,94 @@ r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
|
|||
gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### DigiCert, Inc.
|
||||
|
||||
=== /C=US/O=DigiCert, Inc./CN=DigiCert TLS ECC P384 Root G5
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
09:e0:93:65:ac:f7:d9:c8:b9:3e:1c:0b:04:2a:2e:f3
|
||||
Signature Algorithm: ecdsa-with-SHA384
|
||||
Validity
|
||||
Not Before: Jan 15 00:00:00 2021 GMT
|
||||
Not After : Jan 14 23:59:59 2046 GMT
|
||||
Subject: C=US, O=DigiCert, Inc., CN=DigiCert TLS ECC P384 Root G5
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
C1:51:45:50:59:AB:3E:E7:2C:5A:FA:20:22:12:07:80:88:7C:11:6A
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
SHA1 Fingerprint=17:F3:DE:5E:9F:0F:19:E9:8E:F6:1F:32:26:6E:20:C4:07:AE:30:EE
|
||||
SHA256 Fingerprint=01:8E:13:F0:77:25:32:CF:80:9B:D1:B1:72:81:86:72:83:FC:48:C6:E1:3B:E9:C6:98:12:85:4A:49:0C:1B:05
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
|
||||
Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
|
||||
MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
|
||||
bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
|
||||
ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
|
||||
7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
|
||||
0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
|
||||
B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
|
||||
BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
|
||||
LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
|
||||
DXZDjC5Ty3zfDBeWUA==
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=US/O=DigiCert, Inc./CN=DigiCert TLS RSA4096 Root G5
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
08:f9:b4:78:a8:fa:7e:da:6a:33:37:89:de:7c:cf:8a
|
||||
Signature Algorithm: sha384WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Jan 15 00:00:00 2021 GMT
|
||||
Not After : Jan 14 23:59:59 2046 GMT
|
||||
Subject: C=US, O=DigiCert, Inc., CN=DigiCert TLS RSA4096 Root G5
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
51:33:1C:ED:36:40:AF:17:D3:25:CD:69:68:F2:AF:4E:23:3E:B3:41
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
SHA1 Fingerprint=A7:88:49:DC:5D:7C:75:8C:8C:DE:39:98:56:B3:AA:D0:B2:A5:71:35
|
||||
SHA256 Fingerprint=37:1A:00:DC:05:33:B3:72:1A:7E:EB:40:E8:41:9E:70:79:9D:2B:0A:0F:2C:1D:80:69:31:65:F7:CE:C4:AD:75
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Disig a.s.
|
||||
|
||||
=== /C=SK/L=Bratislava/O=Disig a.s./CN=CA Disig Root R2
|
||||
|
@ -2170,65 +2345,104 @@ aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy
|
|||
qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### E-Tu\U011Fra EBG Bili\U015Fim Teknolojileri ve Hizmetleri A.\U015E.
|
||||
### E-Tugra EBG A.S.
|
||||
|
||||
=== /C=TR/L=Ankara/O=E-Tu\xC4\x9Fra EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E./OU=E-Tugra Sertifikasyon Merkezi/CN=E-Tugra Certification Authority
|
||||
=== /C=TR/L=Ankara/O=E-Tugra EBG A.S./OU=E-Tugra Trust Center/CN=E-Tugra Global Root CA ECC v3
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 7667447206703254355 (0x6a683e9c519bcb53)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Serial Number:
|
||||
26:46:19:77:31:e1:4f:6f:28:36:de:39:51:86:e6:d4:97:88:22:c1
|
||||
Signature Algorithm: ecdsa-with-SHA384
|
||||
Validity
|
||||
Not Before: Mar 5 12:09:48 2013 GMT
|
||||
Not After : Mar 3 12:09:48 2023 GMT
|
||||
Subject: C=TR, L=Ankara, O=E-Tu\xC4\x9Fra EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E., OU=E-Tugra Sertifikasyon Merkezi, CN=E-Tugra Certification Authority
|
||||
Not Before: Mar 18 09:46:58 2020 GMT
|
||||
Not After : Mar 12 09:46:58 2045 GMT
|
||||
Subject: C=TR, L=Ankara, O=E-Tugra EBG A.S., OU=E-Tugra Trust Center, CN=E-Tugra Global Root CA ECC v3
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
2E:E3:DB:B2:49:D0:9C:54:79:5C:FA:27:2A:FE:CC:4E:D2:E8:4E:54
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:2E:E3:DB:B2:49:D0:9C:54:79:5C:FA:27:2A:FE:CC:4E:D2:E8:4E:54
|
||||
keyid:FF:82:31:72:3E:F9:C4:66:6C:AD:38:9E:D1:B0:51:88:A5:90:CC:F5
|
||||
|
||||
X509v3 Subject Key Identifier:
|
||||
FF:82:31:72:3E:F9:C4:66:6C:AD:38:9E:D1:B0:51:88:A5:90:CC:F5
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
SHA1 Fingerprint=51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39
|
||||
SHA256 Fingerprint=B0:BF:D5:2B:B0:D7:D9:BD:92:BF:5D:4D:C1:3D:A2:55:C0:2C:54:2F:37:83:65:EA:89:39:11:F5:5E:55:F2:3C
|
||||
SHA1 Fingerprint=8A:2F:AF:57:53:B1:B0:E6:A1:04:EC:5B:6A:69:71:6D:F6:1C:E2:84
|
||||
SHA256 Fingerprint=87:3F:46:85:FA:7F:56:36:25:25:2E:6D:36:BC:D7:F1:6F:C2:49:51:F2:64:E4:7E:1B:95:4F:49:08:CD:CA:13
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
|
||||
BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
|
||||
aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
|
||||
BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
|
||||
Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
|
||||
MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
|
||||
BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
|
||||
em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
|
||||
ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
||||
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
|
||||
B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
|
||||
D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
|
||||
Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
|
||||
q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
|
||||
k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
|
||||
fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
|
||||
dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
|
||||
ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
|
||||
zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
|
||||
rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
|
||||
U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
|
||||
Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
|
||||
XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
|
||||
Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
|
||||
HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
|
||||
GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
|
||||
77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
|
||||
+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
|
||||
vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
|
||||
FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
|
||||
yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
|
||||
AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
|
||||
y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
|
||||
NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
|
||||
MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw
|
||||
gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn
|
||||
cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD
|
||||
VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2
|
||||
NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r
|
||||
YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh
|
||||
IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF
|
||||
Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ
|
||||
KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK
|
||||
fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB
|
||||
Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C
|
||||
MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp
|
||||
ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6
|
||||
7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx
|
||||
vmjkI6TZraE3
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=TR/L=Ankara/O=E-Tugra EBG A.S./OU=E-Tugra Trust Center/CN=E-Tugra Global Root CA RSA v3
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
0d:4d:c5:cd:16:22:95:96:08:7e:b8:0b:7f:15:06:34:fb:79:10:34
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Mar 18 09:07:17 2020 GMT
|
||||
Not After : Mar 12 09:07:17 2045 GMT
|
||||
Subject: C=TR, L=Ankara, O=E-Tugra EBG A.S., OU=E-Tugra Trust Center, CN=E-Tugra Global Root CA RSA v3
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:B2:B4:AE:E6:2D:F7:26:D5:AA:75:2D:76:4B:C0:1B:53:21:D0:48:EF
|
||||
|
||||
X509v3 Subject Key Identifier:
|
||||
B2:B4:AE:E6:2D:F7:26:D5:AA:75:2D:76:4B:C0:1B:53:21:D0:48:EF
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
SHA1 Fingerprint=E9:A8:5D:22:14:52:1C:5B:AA:0A:B4:BE:24:6A:23:8A:C9:BA:E2:A9
|
||||
SHA256 Fingerprint=EF:66:B0:B1:0A:3C:DB:9F:2E:36:48:C7:6B:D2:AF:18:EA:D2:BF:E6:F1:17:65:5E:28:C4:06:0D:A1:A3:F4:C2
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### eMudhra Inc
|
||||
|
@ -3471,61 +3685,6 @@ pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK
|
|||
e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0
|
||||
vm9qp/UsQu0yrbYhnr68
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=GR/O=Hellenic Academic and Research Institutions Cert. Authority/CN=Hellenic Academic and Research Institutions RootCA 2011
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 0 (0x0)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Dec 6 13:49:52 2011 GMT
|
||||
Not After : Dec 1 13:49:52 2031 GMT
|
||||
Subject: C=GR, O=Hellenic Academic and Research Institutions Cert. Authority, CN=Hellenic Academic and Research Institutions RootCA 2011
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Key Usage:
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Subject Key Identifier:
|
||||
A6:91:42:FD:13:61:4A:23:9E:08:A4:29:E5:D8:13:04:23:EE:41:25
|
||||
X509v3 Name Constraints:
|
||||
Permitted:
|
||||
DNS:.gr
|
||||
DNS:.eu
|
||||
DNS:.edu
|
||||
DNS:.org
|
||||
email:.gr
|
||||
email:.eu
|
||||
email:.edu
|
||||
email:.org
|
||||
|
||||
SHA1 Fingerprint=FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
|
||||
SHA256 Fingerprint=BC:10:4F:15:A4:8B:E7:09:DC:A5:42:A7:E1:D4:B9:DF:6F:05:45:27:E8:02:EA:A9:2D:59:54:44:25:8A:FE:71
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
|
||||
RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
|
||||
dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
|
||||
YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
|
||||
NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
|
||||
EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
|
||||
cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
|
||||
c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
|
||||
dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
|
||||
fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
|
||||
bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
|
||||
75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
|
||||
FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
|
||||
HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
|
||||
5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
|
||||
b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
|
||||
A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
|
||||
6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
|
||||
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
|
||||
dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
|
||||
Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
|
||||
l7WdmplNsDz4SgCbZN2fOUvRJ9e4
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Hongkong Post
|
||||
|
||||
|
@ -4338,57 +4497,6 @@ uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
|
|||
XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Network Solutions L.L.C.
|
||||
|
||||
=== /C=US/O=Network Solutions L.L.C./CN=Network Solutions Certificate Authority
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
57:cb:33:6f:c2:5c:16:e6:47:16:17:e3:90:31:68:e0
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Dec 1 00:00:00 2006 GMT
|
||||
Not After : Dec 31 23:59:59 2029 GMT
|
||||
Subject: C=US, O=Network Solutions L.L.C., CN=Network Solutions Certificate Authority
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
21:30:C9:FB:00:D7:4E:98:DA:87:AA:2A:D0:A7:2E:B1:40:31:A7:4C
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 CRL Distribution Points:
|
||||
|
||||
Full Name:
|
||||
URI:http://crl.netsolssl.com/NetworkSolutionsCertificateAuthority.crl
|
||||
|
||||
SHA1 Fingerprint=74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CE
|
||||
SHA256 Fingerprint=15:F0:BA:00:A3:AC:7A:F3:AC:88:4C:07:2B:10:11:A0:77:BD:77:C0:97:F4:01:64:B2:F8:59:8A:BD:83:86:0C
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi
|
||||
MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
||||
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
||||
dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
|
||||
UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
|
||||
ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
|
||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
|
||||
c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
|
||||
OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
|
||||
mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
|
||||
BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
|
||||
qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw
|
||||
gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB
|
||||
BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu
|
||||
bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp
|
||||
dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8
|
||||
6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
|
||||
h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
|
||||
/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
||||
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
|
||||
pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### QuoVadis Limited
|
||||
|
||||
=== /C=BM/O=QuoVadis Limited/CN=QuoVadis Root CA 1 G3
|
||||
|
@ -4672,6 +4780,92 @@ ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
|
|||
|
||||
### SECOM Trust Systems CO.,LTD.
|
||||
|
||||
=== /C=JP/O=SECOM Trust Systems CO.,LTD./CN=Security Communication ECC RootCA1
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
d6:5d:9b:b3:78:81:2e:eb
|
||||
Signature Algorithm: ecdsa-with-SHA384
|
||||
Validity
|
||||
Not Before: Jun 16 05:15:28 2016 GMT
|
||||
Not After : Jan 18 05:15:28 2038 GMT
|
||||
Subject: C=JP, O=SECOM Trust Systems CO.,LTD., CN=Security Communication ECC RootCA1
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
86:1C:E7:FE:2D:A5:4A:8B:08:FE:28:11:FA:BE:A3:66:F8:60:59:2F
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
SHA1 Fingerprint=B8:0E:26:A9:BF:D2:B2:3B:C0:EF:46:C9:BA:C7:BB:F6:1D:0D:41:41
|
||||
SHA256 Fingerprint=E7:4F:BD:A5:5B:D5:64:C4:73:A3:6B:44:1A:A7:99:C8:A6:8E:07:74:40:E8:28:8B:9F:A1:E5:0E:4B:BA:CA:11
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT
|
||||
AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD
|
||||
VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx
|
||||
NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT
|
||||
HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5
|
||||
IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
|
||||
AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl
|
||||
dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK
|
||||
ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E
|
||||
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu
|
||||
9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O
|
||||
be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k=
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=JP/O=SECOM Trust Systems CO.,LTD./CN=Security Communication RootCA3
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
e1:7c:37:40:fd:1b:fe:67
|
||||
Signature Algorithm: sha384WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Jun 16 06:17:16 2016 GMT
|
||||
Not After : Jan 18 06:17:16 2038 GMT
|
||||
Subject: C=JP, O=SECOM Trust Systems CO.,LTD., CN=Security Communication RootCA3
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
64:14:7C:FC:58:72:16:A6:0A:29:34:15:6F:2A:CB:BC:FC:AF:A8:AB
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
SHA1 Fingerprint=C3:03:C8:22:74:92:E5:61:A2:9C:5F:79:91:2B:1E:44:13:91:30:3A
|
||||
SHA256 Fingerprint=24:A5:5C:2A:B0:51:44:2D:06:17:76:65:41:23:9A:4A:D0:32:D7:C5:51:75:AA:34:FF:DE:2F:BC:4F:5C:52:94
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
TdJ0MN1kURXbg4NR16/9M51NZg==
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=JP/O=SECOM Trust Systems CO.,LTD./OU=Security Communication RootCA2
|
||||
Certificate:
|
||||
Data:
|
||||
|
@ -5051,60 +5245,6 @@ oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY
|
|||
Ic2wBlX7Jz9TkHCpBB5XJ7k=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Staat der Nederlanden
|
||||
|
||||
=== /C=NL/O=Staat der Nederlanden/CN=Staat der Nederlanden EV Root CA
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 10000013 (0x98968d)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Dec 8 11:19:29 2010 GMT
|
||||
Not After : Dec 8 11:10:28 2022 GMT
|
||||
Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden EV Root CA
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Key Usage: critical
|
||||
Certificate Sign, CRL Sign
|
||||
X509v3 Subject Key Identifier:
|
||||
FE:AB:00:90:98:9E:24:FC:A9:CC:1A:8A:FB:27:B8:BF:30:6E:A8:3B
|
||||
SHA1 Fingerprint=76:E2:7E:C1:4F:DB:82:C1:C0:A6:75:B5:05:BE:3D:29:B4:ED:DB:BB
|
||||
SHA256 Fingerprint=4D:24:91:41:4C:FE:95:67:46:EC:4C:EF:A6:CF:6F:72:E2:8A:13:29:43:2F:9D:8A:90:7A:C4:CB:5D:AD:C1:5A
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
7uzXLg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Starfield Technologies, Inc.
|
||||
|
||||
=== /C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
|
||||
|
@ -5792,163 +5932,6 @@ L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
|
|||
jjxDah2nGN59PRbxYvnKkKj9
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### TrustCor Systems S. de R.L.
|
||||
|
||||
=== /C=PA/ST=Panama/L=Panama City/O=TrustCor Systems S. de R.L./OU=TrustCor Certificate Authority/CN=TrustCor ECA-1
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
84:82:2c:5f:1c:62:d0:40
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Feb 4 12:32:33 2016 GMT
|
||||
Not After : Dec 31 17:28:07 2029 GMT
|
||||
Subject: C=PA, ST=Panama, L=Panama City, O=TrustCor Systems S. de R.L., OU=TrustCor Certificate Authority, CN=TrustCor ECA-1
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
44:9E:48:F5:CC:6D:48:D4:A0:4B:7F:FE:59:24:2F:83:97:99:9A:86
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:44:9E:48:F5:CC:6D:48:D4:A0:4B:7F:FE:59:24:2F:83:97:99:9A:86
|
||||
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Certificate Sign, CRL Sign
|
||||
SHA1 Fingerprint=58:D1:DF:95:95:67:6B:63:C0:F0:5B:1C:17:4D:8B:84:0B:C8:78:BD
|
||||
SHA256 Fingerprint=5A:88:5D:B1:9C:01:D9:12:C5:75:93:88:93:8C:AF:BB:DF:03:1A:B2:D4:8E:91:EE:15:58:9B:42:97:1D:03:9C
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD
|
||||
VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk
|
||||
MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
|
||||
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDlRydXN0Q29y
|
||||
IEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3MjgwN1owgZwxCzAJBgNV
|
||||
BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw
|
||||
IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy
|
||||
dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3Ig
|
||||
RUNBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb
|
||||
3w9U73NjKYKtR8aja+3+XzP4Q1HpGjORMRegdMTUpwHmspI+ap3tDvl0mEDTPwOA
|
||||
BoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23xFUfJ3zSCNV2HykVh0A5
|
||||
3ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmcp0yJF4Ou
|
||||
owReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/
|
||||
wZ0+fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZF
|
||||
ZtS6mFjBAgMBAAGjYzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAf
|
||||
BgNVHSMEGDAWgBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/
|
||||
MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABT41XBVwm8nHc2Fv
|
||||
civUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u/ukZMjgDfxT2
|
||||
AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
|
||||
hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50
|
||||
soIipX1TH0XsJ5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BI
|
||||
WJZpTdwHjFGTot+fDz2LYLSCjaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1Wi
|
||||
tJ/X5g==
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=PA/ST=Panama/L=Panama City/O=TrustCor Systems S. de R.L./OU=TrustCor Certificate Authority/CN=TrustCor RootCert CA-1
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
da:9b:ec:71:f3:03:b0:19
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Feb 4 12:32:16 2016 GMT
|
||||
Not After : Dec 31 17:23:16 2029 GMT
|
||||
Subject: C=PA, ST=Panama, L=Panama City, O=TrustCor Systems S. de R.L., OU=TrustCor Certificate Authority, CN=TrustCor RootCert CA-1
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
EE:6B:49:3C:7A:3F:0D:E3:B1:09:B7:8A:C8:AB:19:9F:73:33:50:E7
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:EE:6B:49:3C:7A:3F:0D:E3:B1:09:B7:8A:C8:AB:19:9F:73:33:50:E7
|
||||
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Certificate Sign, CRL Sign
|
||||
SHA1 Fingerprint=FF:BD:CD:E7:82:C8:43:5E:3C:6F:26:86:5C:CA:A8:3A:45:5B:C3:0A
|
||||
SHA256 Fingerprint=D4:0E:9C:86:CD:8F:E4:68:C1:77:69:59:F4:9E:A7:74:FA:54:86:84:B6:C4:06:F3:90:92:61:F4:DC:E2:57:5C
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYD
|
||||
VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk
|
||||
MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
|
||||
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29y
|
||||
IFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkxMjMxMTcyMzE2WjCB
|
||||
pDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFuYW1h
|
||||
IENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUG
|
||||
A1UECwweVHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZU
|
||||
cnVzdENvciBSb290Q2VydCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAv463leLCJhJrMxnHQFgKq1mqjQCj/IDHUHuO1CAmujIS2CNUSSUQIpid
|
||||
RtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4pQa81QBeCQryJ3pS/C3V
|
||||
seq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0JEsq1pme
|
||||
9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CV
|
||||
EY4hgLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorW
|
||||
hnAbJN7+KIor0Gqw/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/
|
||||
DeOxCbeKyKsZn3MzUOcwHwYDVR0jBBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcw
|
||||
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
|
||||
ggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5mDo4Nvu7Zp5I
|
||||
/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
|
||||
ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZ
|
||||
yonnMlo2HD6CqFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djts
|
||||
L1Ac59v2Z3kf9YKVmgenFK+P3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdN
|
||||
zl/HHk484IkzlQsPpTLWPFp5LBk=
|
||||
-----END CERTIFICATE-----
|
||||
=== /C=PA/ST=Panama/L=Panama City/O=TrustCor Systems S. de R.L./OU=TrustCor Certificate Authority/CN=TrustCor RootCert CA-2
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 2711694510199101698 (0x25a1dfca33cb5902)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Validity
|
||||
Not Before: Feb 4 12:32:23 2016 GMT
|
||||
Not After : Dec 31 17:26:39 2034 GMT
|
||||
Subject: C=PA, ST=Panama, L=Panama City, O=TrustCor Systems S. de R.L., OU=TrustCor Certificate Authority, CN=TrustCor RootCert CA-2
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
D9:FE:21:40:6E:94:9E:BC:9B:3D:9C:7D:98:20:19:E5:8C:30:62:B2
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:D9:FE:21:40:6E:94:9E:BC:9B:3D:9C:7D:98:20:19:E5:8C:30:62:B2
|
||||
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Certificate Sign, CRL Sign
|
||||
SHA1 Fingerprint=B8:BE:6D:CB:56:F1:55:B9:63:D4:12:CA:4E:06:34:C7:94:B2:1C:C0
|
||||
SHA256 Fingerprint=07:53:E9:40:37:8C:1B:D5:E3:83:6E:39:5D:AE:A5:CB:83:9E:50:46:F1:BD:0E:AE:19:51:CF:10:FE:C7:C9:65
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV
|
||||
BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw
|
||||
IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy
|
||||
dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3Ig
|
||||
Um9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEyMzExNzI2MzlaMIGk
|
||||
MQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEg
|
||||
Q2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYD
|
||||
VQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRy
|
||||
dXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
|
||||
AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+
|
||||
QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq
|
||||
1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp
|
||||
2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nK
|
||||
DOObXUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hape
|
||||
az6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF
|
||||
3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88
|
||||
oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjxklb9tTNM
|
||||
g9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3
|
||||
mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
|
||||
8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAd
|
||||
BgNVHQ4EFgQU2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6U
|
||||
nrybPZx9mCAZ5YwwYrIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYw
|
||||
DQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/hOsh80QA9z+LqBrWyOrsGS2h60COX
|
||||
dKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnpkpfbsEZC89NiqpX+
|
||||
MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv2wnL
|
||||
/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RX
|
||||
CI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa
|
||||
ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW
|
||||
2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7
|
||||
N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3
|
||||
Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArB
|
||||
As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp
|
||||
5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu
|
||||
1uwJ
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
### Trustwave Holdings, Inc.
|
||||
|
||||
=== /C=US/ST=Illinois/L=Chicago/O=Trustwave Holdings, Inc./CN=Trustwave Global Certification Authority
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
/* $OpenBSD: crypto_init.c,v 1.8 2023/05/08 13:53:26 tb Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2018 Bob Beck <beck@openbsd.org>
|
||||
*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: ec_asn1.c,v 1.42 2023/04/25 19:53:30 tb Exp $ */
|
||||
/* $OpenBSD: ec_asn1.c,v 1.45 2023/05/04 05:59:38 tb Exp $ */
|
||||
/*
|
||||
* Written by Nils Larsch for the OpenSSL project.
|
||||
*/
|
||||
|
@ -225,7 +225,6 @@ static const ASN1_ADB_TABLE X9_62_CHARACTERISTIC_TWO_adbtbl[] = {
|
|||
.field_name = "p.onBasis",
|
||||
.item = &ASN1_NULL_it,
|
||||
},
|
||||
|
||||
},
|
||||
{
|
||||
.value = NID_X9_62_tpBasis,
|
||||
|
@ -236,7 +235,6 @@ static const ASN1_ADB_TABLE X9_62_CHARACTERISTIC_TWO_adbtbl[] = {
|
|||
.field_name = "p.tpBasis",
|
||||
.item = &ASN1_INTEGER_it,
|
||||
},
|
||||
|
||||
},
|
||||
{
|
||||
.value = NID_X9_62_ppBasis,
|
||||
|
@ -327,7 +325,6 @@ static const ASN1_ADB_TABLE X9_62_FIELDID_adbtbl[] = {
|
|||
.field_name = "p.prime",
|
||||
.item = &ASN1_INTEGER_it,
|
||||
},
|
||||
|
||||
},
|
||||
{
|
||||
.value = NID_X9_62_characteristic_two_field,
|
||||
|
@ -338,7 +335,6 @@ static const ASN1_ADB_TABLE X9_62_FIELDID_adbtbl[] = {
|
|||
.field_name = "p.char_two",
|
||||
.item = &X9_62_CHARACTERISTIC_TWO_it,
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -619,7 +615,7 @@ EC_PRIVATEKEY_free(EC_PRIVATEKEY *a)
|
|||
|
||||
/* some declarations of internal function */
|
||||
|
||||
/* ec_asn1_group2field() sets the values in a X9_62_FIELDID object */
|
||||
/* ec_asn1_group2fieldid() sets the values in a X9_62_FIELDID object */
|
||||
static int ec_asn1_group2fieldid(const EC_GROUP *, X9_62_FIELDID *);
|
||||
/* ec_asn1_group2curve() sets the values in a X9_62_CURVE object */
|
||||
static int ec_asn1_group2curve(const EC_GROUP *, X9_62_CURVE *);
|
||||
|
@ -912,8 +908,8 @@ ec_asn1_group2pkparameters(const EC_GROUP *group, ECPKPARAMETERS *params)
|
|||
} else {
|
||||
/* use the ECPARAMETERS structure */
|
||||
ret->type = 1;
|
||||
if ((ret->value.parameters = ec_asn1_group2parameters(
|
||||
group, NULL)) == NULL)
|
||||
if ((ret->value.parameters = ec_asn1_group2parameters(group,
|
||||
NULL)) == NULL)
|
||||
ok = 0;
|
||||
}
|
||||
|
||||
|
@ -1098,7 +1094,7 @@ ec_asn1_pkparameters2group(const ECPKPARAMETERS *params)
|
|||
/* EC_GROUP <-> DER encoding of ECPKPARAMETERS */
|
||||
|
||||
EC_GROUP *
|
||||
d2i_ECPKParameters(EC_GROUP ** a, const unsigned char **in, long len)
|
||||
d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in, long len)
|
||||
{
|
||||
EC_GROUP *group = NULL;
|
||||
ECPKPARAMETERS *params;
|
||||
|
@ -1143,7 +1139,7 @@ i2d_ECPKParameters(const EC_GROUP *a, unsigned char **out)
|
|||
/* some EC_KEY functions */
|
||||
|
||||
EC_KEY *
|
||||
d2i_ECPrivateKey(EC_KEY ** a, const unsigned char **in, long len)
|
||||
d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len)
|
||||
{
|
||||
EC_KEY *ret = NULL;
|
||||
EC_PRIVATEKEY *priv_key = NULL;
|
||||
|
@ -1329,7 +1325,7 @@ i2d_ECParameters(EC_KEY *a, unsigned char **out)
|
|||
}
|
||||
|
||||
EC_KEY *
|
||||
d2i_ECParameters(EC_KEY ** a, const unsigned char **in, long len)
|
||||
d2i_ECParameters(EC_KEY **a, const unsigned char **in, long len)
|
||||
{
|
||||
EC_KEY *ret;
|
||||
|
||||
|
@ -1358,7 +1354,7 @@ d2i_ECParameters(EC_KEY ** a, const unsigned char **in, long len)
|
|||
}
|
||||
|
||||
EC_KEY *
|
||||
o2i_ECPublicKey(EC_KEY ** a, const unsigned char **in, long len)
|
||||
o2i_ECPublicKey(EC_KEY **a, const unsigned char **in, long len)
|
||||
{
|
||||
EC_KEY *ret = NULL;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: ec_lib.c,v 1.56 2023/04/25 19:53:30 tb Exp $ */
|
||||
/* $OpenBSD: ec_lib.c,v 1.57 2023/05/04 13:51:59 tb Exp $ */
|
||||
/*
|
||||
* Originally written by Bodo Moeller for the OpenSSL project.
|
||||
*/
|
||||
|
@ -1459,15 +1459,20 @@ ec_group_simple_order_bits(const EC_GROUP *group)
|
|||
EC_KEY *
|
||||
ECParameters_dup(EC_KEY *key)
|
||||
{
|
||||
unsigned char *p = NULL;
|
||||
EC_KEY *k = NULL;
|
||||
const unsigned char *p;
|
||||
unsigned char *der = NULL;
|
||||
EC_KEY *dup = NULL;
|
||||
int len;
|
||||
|
||||
if (key == NULL)
|
||||
return (NULL);
|
||||
return NULL;
|
||||
|
||||
if ((len = i2d_ECParameters(key, &p)) > 0)
|
||||
k = d2i_ECParameters(NULL, (const unsigned char **)&p, len);
|
||||
if ((len = i2d_ECParameters(key, &der)) <= 0)
|
||||
return NULL;
|
||||
|
||||
return (k);
|
||||
p = der;
|
||||
dup = d2i_ECParameters(NULL, &p, len);
|
||||
freezero(der, len);
|
||||
|
||||
return dup;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: ec_oct.c,v 1.13 2023/05/01 21:15:26 tb Exp $ */
|
||||
/* $OpenBSD: ec_oct.c,v 1.14 2023/05/04 06:45:51 tb Exp $ */
|
||||
/*
|
||||
* Originally written by Bodo Moeller for the OpenSSL project.
|
||||
*/
|
||||
|
@ -113,7 +113,7 @@ EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *point,
|
|||
BN_CTX *ctx_in)
|
||||
{
|
||||
BN_CTX *ctx;
|
||||
int ret = 0;
|
||||
size_t ret = 0;
|
||||
|
||||
if ((ctx = ctx_in) == NULL)
|
||||
ctx = BN_CTX_new();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $OpenBSD: BN_generate_prime.3,v 1.22 2023/04/30 20:17:59 tb Exp $
|
||||
.\" $OpenBSD: BN_generate_prime.3,v 1.24 2023/05/12 08:18:13 jsg Exp $
|
||||
.\" full merge up to: OpenSSL f987a4dd Jun 27 10:12:08 2019 +0200
|
||||
.\"
|
||||
.\" This file is a derived work.
|
||||
|
@ -67,7 +67,7 @@
|
|||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd $Mdocdate: April 30 2023 $
|
||||
.Dd $Mdocdate: May 12 2023 $
|
||||
.Dt BN_GENERATE_PRIME 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -81,7 +81,7 @@
|
|||
.Nm BN_GENCB_get_arg ,
|
||||
.Nm BN_GENCB_set_old
|
||||
.\" Nm BN_prime_checks_for_size is intentionally undocumented
|
||||
.\" because it is no longer used by LibreSSL.
|
||||
.\" because it should not be used outside of libcrypto.
|
||||
.Nd generate primes and test for primality
|
||||
.Sh SYNOPSIS
|
||||
.In openssl/bn.h
|
||||
|
@ -147,13 +147,14 @@ and
|
|||
test whether the number
|
||||
.Fa a
|
||||
is prime.
|
||||
In LibreSSL, both functions behave identically,
|
||||
use the Baillie-Pomerance-Selfridge-Wagstaff algorithm,
|
||||
and ignore the
|
||||
In LibreSSL, both functions behave identically
|
||||
and use the Baillie-Pomerance-Selfridge-Wagstaff algorithm
|
||||
combined with
|
||||
.Fa checks
|
||||
and
|
||||
Miller-Rabin rounds.
|
||||
The
|
||||
.Fa do_trial_division
|
||||
arguments.
|
||||
argument is ignored.
|
||||
.Pp
|
||||
It is unknown whether any composite number exists that the
|
||||
Baillie-PSW algorithm misclassifies as a prime.
|
||||
|
@ -161,6 +162,20 @@ Some suspect that there may be infinitely many such numbers,
|
|||
but not a single one is currently known.
|
||||
It is known that no such number exists below 2\(ha64.
|
||||
.Pp
|
||||
In order to reduce the likelihood of a composite number
|
||||
passing the primality tests
|
||||
.Fn BN_is_prime_fasttest_ex
|
||||
and
|
||||
.Fn BN_is_prime_ex ,
|
||||
a number of rounds of the probabilistic Miller-Rabin test is performed.
|
||||
If
|
||||
.Fa checks
|
||||
is positive, it is used as the number of rounds;
|
||||
if it is zero or the special value
|
||||
.Dv BN_prime_checks ,
|
||||
a suitable number of rounds is calculated from the bit length of
|
||||
.Fa a .
|
||||
.Pp
|
||||
If
|
||||
.Dv NULL
|
||||
is passed for the
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $OpenBSD: EVP_AEAD_CTX_init.3,v 1.10 2022/01/10 22:44:22 tb Exp $
|
||||
.\" $OpenBSD: EVP_AEAD_CTX_init.3,v 1.11 2023/05/09 07:19:24 tb Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2014, Google Inc.
|
||||
.\" Parts of the text were written by Adam Langley and David Benjamin.
|
||||
|
@ -16,7 +16,7 @@
|
|||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.Dd $Mdocdate: January 10 2022 $
|
||||
.Dd $Mdocdate: May 9 2023 $
|
||||
.Dt EVP_AEAD_CTX_INIT 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -266,9 +266,14 @@ It is also safer to use as it prevents common mistakes with the native APIs.
|
|||
.Fn EVP_AEAD_CTX_new
|
||||
returns the new
|
||||
.Vt EVP_AEAD_CTX
|
||||
object or
|
||||
object on success;
|
||||
otherwise
|
||||
.Dv NULL
|
||||
on failure.
|
||||
is returned and
|
||||
.Va errno
|
||||
is set to
|
||||
.Er ENOMEM .
|
||||
.Pp
|
||||
.Fn EVP_AEAD_CTX_init ,
|
||||
.Fn EVP_AEAD_CTX_open ,
|
||||
and
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $OpenBSD: RSA_pkey_ctx_ctrl.3,v 1.6 2023/04/16 23:19:28 tb Exp $
|
||||
.\" $OpenBSD: RSA_pkey_ctx_ctrl.3,v 1.7 2023/05/05 12:22:21 tb Exp $
|
||||
.\" full merge up to:
|
||||
.\" OpenSSL man3/EVP_PKEY_CTX_ctrl.pod 99d63d46 Oct 26 13:56:48 2016 -0400
|
||||
.\" OpenSSL man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.pod
|
||||
|
@ -55,7 +55,7 @@
|
|||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd $Mdocdate: April 16 2023 $
|
||||
.Dd $Mdocdate: May 5 2023 $
|
||||
.Dt RSA_PKEY_CTX_CTRL 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -189,15 +189,12 @@ for PKCS#1 padding,
|
|||
for no padding,
|
||||
.Dv RSA_PKCS1_OAEP_PADDING
|
||||
for OAEP padding (encrypt and decrypt only),
|
||||
and
|
||||
.Dv RSA_X931_PADDING
|
||||
for X9.31 padding (signature operations only) and
|
||||
.Dv RSA_PKCS1_PSS_PADDING
|
||||
(sign and verify only).
|
||||
Only the last one can be used with keys of the type
|
||||
.Dv EVP_PKEY_RSA_PSS .
|
||||
X9.31 padding mode is unsupported.
|
||||
.Dv RSA_X931_PADDING
|
||||
is provided for backward compatibility with some existing
|
||||
application software.
|
||||
.Pp
|
||||
Two RSA padding modes behave differently if
|
||||
.Xr EVP_PKEY_CTX_set_signature_md 3
|
||||
|
@ -209,6 +206,8 @@ structure according to PKCS#1 when signing and this structure is
|
|||
expected (and stripped off) when verifying.
|
||||
If this control is not used with RSA and PKCS#1 padding then the
|
||||
supplied data is used directly and not encapsulated.
|
||||
In the case of X9.31 padding for RSA the algorithm identifier byte is
|
||||
added or checked and removed if this control is called.
|
||||
If it is not called then the first byte of the plaintext buffer is
|
||||
expected to be the algorithm identifier byte.
|
||||
.Pp
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $OpenBSD: X509_NAME_get_index_by_NID.3,v 1.14 2023/05/02 14:13:05 beck Exp $
|
||||
.\" $OpenBSD: X509_NAME_get_index_by_NID.3,v 1.15 2023/05/03 08:10:23 beck Exp $
|
||||
.\" OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
|
||||
.\"
|
||||
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
||||
|
@ -49,7 +49,7 @@
|
|||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd $Mdocdate: May 2 2023 $
|
||||
.Dd $Mdocdate: May 3 2023 $
|
||||
.Dt X509_NAME_GET_INDEX_BY_NID 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -136,32 +136,22 @@ run from 0 to
|
|||
.Fn X509_NAME_get_text_by_NID
|
||||
and
|
||||
.Fn X509_NAME_get_text_by_OBJ
|
||||
retrieve the bytes encoded as UTF-8 from the first entry in
|
||||
retrieve the "text" from the first entry in
|
||||
.Fa name
|
||||
which matches
|
||||
.Fa nid
|
||||
or
|
||||
.Fa obj .
|
||||
At most
|
||||
.Fa len
|
||||
bytes will be written and the text written to
|
||||
.Fa buf
|
||||
will be NUL terminated.
|
||||
If
|
||||
.Fa buf
|
||||
is
|
||||
.Dv NULL ,
|
||||
nothing is written, but the return value is calculated as usual.
|
||||
If
|
||||
.Fa buf
|
||||
is not
|
||||
.Dv NULL ,
|
||||
no more than
|
||||
.Fa len
|
||||
bytes will be written and the text written to
|
||||
.Fa buf
|
||||
will be NUL terminated.
|
||||
.Pp
|
||||
Nothing is written and it is a failure if
|
||||
.Fa len
|
||||
is not large enough to hold the NUL byte terminated UTF-8 encoding of
|
||||
the text, or if the UTF-8 encoding ot the text would contins a NUL
|
||||
byte.
|
||||
.Pp
|
||||
All relevant
|
||||
.Dv NID_*
|
||||
|
@ -199,8 +189,8 @@ if the index is invalid.
|
|||
.Fn X509_NAME_get_text_by_NID
|
||||
and
|
||||
.Fn X509_NAME_get_text_by_OBJ
|
||||
return the length of the output UTF-8 string written, not counting the
|
||||
terminating NUL, or -1 in the case of an error or no match being found.
|
||||
return the length of the output string written, not counting the
|
||||
terminating NUL, or -1 if no match is found.
|
||||
.Pp
|
||||
In some cases of failure of
|
||||
.Fn X509_NAME_get_index_by_NID
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $OpenBSD: s2i_ASN1_INTEGER.3,v 1.4 2023/04/21 13:08:16 tb Exp $
|
||||
.\" $OpenBSD: s2i_ASN1_INTEGER.3,v 1.5 2023/05/12 08:12:09 tb Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
|
||||
.\"
|
||||
|
@ -14,7 +14,7 @@
|
|||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.Dd $Mdocdate: April 21 2023 $
|
||||
.Dd $Mdocdate: May 12 2023 $
|
||||
.Dt I2S_ASN1_INTEGER 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -135,8 +135,9 @@ The
|
|||
and
|
||||
.Fa ctx
|
||||
arguments are ignored.
|
||||
Every pair of hexadecimal digits is converted into an octet, while
|
||||
any number of colons separating two pairs are ignored.
|
||||
Every pair of hexadecimal digits is converted into an octet.
|
||||
Colons are ignored if they are at the start, the end or
|
||||
if they separate two pairs of digits.
|
||||
.Pp
|
||||
.Fn i2s_ASN1_ENUMERATED_TABLE
|
||||
uses strings provided in the usr_data field of the non-NULL
|
||||
|
@ -187,7 +188,7 @@ or NULL on error.
|
|||
Error conditions are memory allocation failure or if
|
||||
.Fa value
|
||||
contains an odd number of hexadecimal digits or anything except
|
||||
colons between pairs of hexadecimal digits.
|
||||
colons at the start, the end or between pairs of hexadecimal digits.
|
||||
.Pp
|
||||
Error codes can sometimes be obtained by
|
||||
.Xr ERR_get_error 3 .
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: xts128.c,v 1.9 2022/11/26 16:08:53 tb Exp $ */
|
||||
/* $OpenBSD: xts128.c,v 1.10 2023/05/07 14:38:04 tb Exp $ */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 2011 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
|
@ -120,9 +120,9 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16],
|
|||
}
|
||||
if (enc) {
|
||||
for (i=0;i<len;++i) {
|
||||
u8 c = inp[i];
|
||||
u8 ch = inp[i];
|
||||
out[i] = scratch.c[i];
|
||||
scratch.c[i] = c;
|
||||
scratch.c[i] = ch;
|
||||
}
|
||||
scratch.u[0] ^= tweak.u[0];
|
||||
scratch.u[1] ^= tweak.u[1];
|
||||
|
@ -165,9 +165,9 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16],
|
|||
scratch.u[1] ^= tweak1.u[1];
|
||||
|
||||
for (i=0;i<len;++i) {
|
||||
u8 c = inp[16+i];
|
||||
u8 ch = inp[16+i];
|
||||
out[16+i] = scratch.c[i];
|
||||
scratch.c[i] = c;
|
||||
scratch.c[i] = ch;
|
||||
}
|
||||
scratch.u[0] ^= tweak.u[0];
|
||||
scratch.u[1] ^= tweak.u[1];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: rsa.h,v 1.63 2023/04/25 16:50:33 tb Exp $ */
|
||||
/* $OpenBSD: rsa.h,v 1.64 2023/05/05 12:30:40 tb Exp $ */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -225,7 +225,7 @@ typedef struct rsa_oaep_params_st {
|
|||
#define RSA_SSLV23_PADDING 2
|
||||
#define RSA_NO_PADDING 3
|
||||
#define RSA_PKCS1_OAEP_PADDING 4
|
||||
/* Leave this for now as rust-openssl and erlang expose it. */
|
||||
/* rust-openssl and erlang expose this and salt even uses it. */
|
||||
#define RSA_X931_PADDING 5
|
||||
/* EVP_PKEY_ only */
|
||||
#define RSA_PKCS1_PSS_PADDING 6
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: rsa_eay.c,v 1.59 2023/04/15 18:48:52 tb Exp $ */
|
||||
/* $OpenBSD: rsa_eay.c,v 1.60 2023/05/05 12:21:44 tb Exp $ */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -382,11 +382,14 @@ RSA_eay_private_encrypt(int flen, const unsigned char *from, unsigned char *to,
|
|||
case RSA_PKCS1_PADDING:
|
||||
i = RSA_padding_add_PKCS1_type_1(buf, num, from, flen);
|
||||
break;
|
||||
case RSA_X931_PADDING:
|
||||
i = RSA_padding_add_X931(buf, num, from, flen);
|
||||
break;
|
||||
case RSA_NO_PADDING:
|
||||
i = RSA_padding_add_none(buf, num, from, flen);
|
||||
break;
|
||||
default:
|
||||
RSAerror(RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE);
|
||||
RSAerror(RSA_R_UNKNOWN_PADDING_TYPE);
|
||||
goto err;
|
||||
}
|
||||
if (i <= 0)
|
||||
|
@ -446,11 +449,14 @@ RSA_eay_private_encrypt(int flen, const unsigned char *from, unsigned char *to,
|
|||
goto err;
|
||||
|
||||
if (padding == RSA_X931_PADDING) {
|
||||
RSAerror(RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE);
|
||||
goto err;
|
||||
}
|
||||
|
||||
res = ret;
|
||||
if (!BN_sub(f, rsa->n, ret))
|
||||
goto err;
|
||||
if (BN_cmp(ret, f) > 0)
|
||||
res = f;
|
||||
else
|
||||
res = ret;
|
||||
} else
|
||||
res = ret;
|
||||
|
||||
/* put in leading 0 bytes if the number is less than the
|
||||
* length of the modulus */
|
||||
|
@ -661,10 +667,9 @@ RSA_eay_public_decrypt(int flen, const unsigned char *from, unsigned char *to,
|
|||
rsa->_method_mod_n))
|
||||
goto err;
|
||||
|
||||
if (padding == RSA_X931_PADDING) {
|
||||
RSAerror(RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE);
|
||||
goto err;
|
||||
}
|
||||
if (padding == RSA_X931_PADDING && (ret->d[0] & 0xf) != 12)
|
||||
if (!BN_sub(ret, rsa->n, ret))
|
||||
goto err;
|
||||
|
||||
p = buf;
|
||||
i = BN_bn2bin(ret, p);
|
||||
|
@ -673,6 +678,9 @@ RSA_eay_public_decrypt(int flen, const unsigned char *from, unsigned char *to,
|
|||
case RSA_PKCS1_PADDING:
|
||||
r = RSA_padding_check_PKCS1_type_1(to, num, buf, i, num);
|
||||
break;
|
||||
case RSA_X931_PADDING:
|
||||
r = RSA_padding_check_X931(to, num, buf, i, num);
|
||||
break;
|
||||
case RSA_NO_PADDING:
|
||||
r = RSA_padding_check_none(to, num, buf, i, num);
|
||||
break;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue