summaryrefslogtreecommitdiffstats
path: root/libexec
Commit message (Collapse)AuthorAgeFilesLines
* ypxfr(8): Use the correct enum member for checking yp_errno.rodrigc2015-05-311-2/+2
| | | | | | | Found-by: gcc47 Submitted by: Sascha Wildner <swildner@dragonflybsd.org> Obtained from: DragonFlyBSD (commit d0b3a17c3c6)
* Remove historical GNUC testemaste2015-05-062-8/+0
| | | | | | | | | | | The requirement is for a GCC-compatible compiler and not necessarily GCC itself. However, we currently expect any compiler used for building the whole of FreeBSD to be GCC-compatible and many things will break if not; there's no longer a need to have an explicit test for this in rtld. Reviewed by: imp, kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2422
* Remove the use of nvlist_.*[vf] functions from casper and replaceoshogbo2015-04-292-8/+22
| | | | | | them with snprintf(3). Assert the results of snprintf(3). Approved by: pjd (mentor)
* Remove the #ifdef DEBUG code, which is not compilable on 64bitkib2015-04-291-14/+0
| | | | | | | | architectures. It seems to be an overlooked chunk in the r15645. PR: 199767 Sponsored by: The FreeBSD Foundation MFC after: 1 week
* Change interpretation of the DF_ORIGIN and DF_1_ORIGIN flags.kib2015-04-271-36/+45
| | | | | | | | | | | | | | | | According to standard, the presence of the flags only means that the object path must be resolved at the time object loading, instead of my reading that the flag is required to enable token substitution at all. The consequence is that -z origin linker flag is no longer required for the token substitution in the run/rpath or the needed library soname. It is only recommended if token substition is needed at dlopen(3) time, since namecache might drop the required entries at the time of resolution. Found, reviewed and tested by: emaste Sponsored by: The FreeBSD Foundation MFC after: 1 week
* Fix potential memory leak.oshogbo2015-04-271-2/+4
| | | | | Pointed-out by: pfg Approved by: pjd (mentor)
* Support file verification in MAC.rodrigc2015-04-221-2/+2
| | | | | | | | | | | | | | * Add VCREAT flag to indicate when a new file is being created * Add VVERIFY to indicate verification is required * Both VCREAT and VVERIFY are only passed on the MAC method vnode_check_open and are removed from the accmode after * Add O_VERIFY flag to rtld open of objects * Add 'v' flag to __sflags to set O_VERIFY flag. Submitted by: Steve Kiernan <stevek@juniper.net> Obtained from: Juniper Networks, Inc. GitHub Pull Request: https://github.com/freebsd/freebsd/pull/27 Relnotes: yes
* Use the correct value to get the offset of the objects tls data.andrew2015-04-151-2/+2
| | | | Sponsored by: The FreeBSD Foundation
* Implement support -z global linker option. It marks the shared objectkib2015-04-152-17/+31
| | | | | | | | as always participating in the global symbols namespace, regardless of the way the object was brought into the process address space. Sponsored by: The FreeBSD Foundation MFC after: 1 week
* MIPS rtld: report missing symbol rather than segfaultingemaste2015-04-051-1/+1
| | | | | | | | This is only an interim fix; MIPS should be using the MI code instead, which does not have this issue. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D661
* Add support for thread local storage on arm64 to the runtime linker. Theandrew2015-04-032-6/+142
| | | | | | | | | | ABI specifies that, for R_AARCH64_TLSDESC relocations, we use the symbol value, addend, and object tls offset to calculate the offset from the tls base. We then cache this value for future reference. Differential Revision: https://reviews.freebsd.org/D2183 Reviewed by: kib Sponsored by: The FreeBSD Foundation
* Make die available as rtld_die for use by MD relocation codeemaste2015-04-022-20/+20
| | | | | | Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2213
* Correct copyright typoemaste2015-03-311-1/+1
|
* Add the arm64 code to the runtime linker. It's not able to be built as weandrew2015-03-314-1/+515
| | | | | | | | | still need libc_pic for a few things, but this is expected to be ready soon. Differential Revision: https://reviews.freebsd.org/D2136 Reviewed by: kib Sponsored by: The FreeBSD Foundation
* Change compiler setting to make default visibility of the symbols forkib2015-03-2912-16/+43
| | | | | | | | | | | rtld on x86 to be hidden. This is a micro-optimization, which allows intrinsic references inside rtld to be handled without indirection through PLT. The visibility of rtld symbols for other objects in the symbol namespace is controlled by a version script. Reviewed by: kan, jilles Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
* When a file is executed and the path starts with `/', AT_EXECPATH is setjkim2015-02-271-8/+7
| | | | | | | | | without any translation. If the file is a symbolic link, $ORIGIN may not be expanded to the actual origin. Use realpath(3) to properly expand $ORIGIN to its absolute path. Reviewed by: kib MFC after: 1 week
* Add the following options to enable/disable several features in the base systemngie2015-02-041-6/+24
| | | | | | | | | | | | | | | WITHOUT_BOOTPARAMD - bootparamd WITHOUT_BOOTPD - bootpd WITHOUT_FINGER - finger, fingerd WITHOUT_FTP - ftp, ftpd WITHOUT_INETD - inetd WITHOUT_RBOOTD - rbootd WITHOUT_TCP_WRAPPERS - tcpd, et al WITHOUT_TFTP - tftp, tftp-server WITHOUT_TIMED - timed MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
* Use powerof2(). Remove single-use variable.kib2015-01-301-5/+3
| | | | | | Submitted by: Conrad Meyer Differential Revision: https://reviews.freebsd.org/D1724 MFC after: 1 week
* Allow tracing dlfunc() / dlsym() events.des2015-01-251-4/+13
| | | | MFC after: 1 week
* Add MK_TALK knob for building the talk and talkdngie2015-01-251-1/+4
| | | | | MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
* Apply r246556 to powerpc:jhibbits2015-01-061-5/+5
| | | | | | | | | Avoid use of register variables, which some compilers (e.g. clang) don't like. It makes the code a little clearer as well. This allows a clang 3.5 built powerpc world to run (tested in a jail). MFC after: 1 week
* Do not erronously export 'openat' symbol from rtld.kib2015-01-041-1/+3
| | | | | | | | | | | The symbol leaked after r276630 since lib/libc/sys/openat.c defines versions for openat using .symver (version script cannot assign two versions to one symbol), and rtld uses openat. Instead, directly use __sys_openat(). Reported and tested by: antoine Sponsored by: The FreeBSD Foundation MFC after: 1 week
* Add rtld private interface for dso to detect dynamic loadingkib2015-01-033-0/+24
| | | | | | | | vs. static linking. Tested by: pho, antoine (exp-run) Sponsored by: The FreeBSD Foundation MFC after: 1 week
* Fix the following -Werror warning from clang 3.5.0, while buildingdim2014-12-281-1/+1
| | | | | | | | | | | | | | | | | | rtld-elf for powerpc 32 bit: libexec/rtld-elf/powerpc/reloc.c:486:6: error: taking the absolute value of unsigned type 'Elf_Addr' (aka 'unsigned int') has no effect [-Werror,-Wabsolute-value] if (abs(offset) < 32*1024*1024) { /* inside 32MB? */ ^ libexec/rtld-elf/powerpc/reloc.c:486:6: note: remove the call to 'abs' since unsigned values cannot be negative if (abs(offset) < 32*1024*1024) { /* inside 32MB? */ ^~~ 1 error generated. Cast 'offset' to int, since that was intended, and should be safe to do on architectures with 32-bit two's complement ints. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D1387
* The runtime linker needs to include a path to itself in the link mapjhb2014-12-021-0/+2
| | | | | | | | | | | | | | | it exports to the debugger. It currently has two choices: it can use a compiled-in path (/libexec/ld-elf.so.1) or it can use the path stored in the interpreter path in the binary being executed. The runtime linker currently prefers the second. However, this is usually wrong for compat32 binaries since the binary specifies the path of rtld on a 32-bit system (/libexec/ld-elf.so.1) instead of the actual path (/libexec/ld-elf32.so.1). For now, always assume the compiled in path (/libexec/ld-elf32.so.1) as the rtld path and ignore the path in the binary for the 32-bit runtime linker. Differential Revision: https://reviews.freebsd.org/D1236 Reviewed by: kib
* Convert to LIBADDbapt2014-11-2528-76/+34
| | | | Reduce overlinking
* Revert r274772: it is not valid on MIPSemaste2014-11-251-1/+1
| | | | Reported by: sbruno
* Use canonical __PIC__ flagemaste2014-11-211-1/+1
| | | | | | | | It is automatically set when -fPIC is passed to the compiler. Reviewed by: dim, kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D1179
* I agree w/ tedu that this isn't a Bug.. it's like complaining thatjmg2014-11-201-18/+2
| | | | | | you can't use an ssh client to fetch a web page... Submitted by: tedu (via -tech)
* Add baud rate support to telnet(1)ngie2014-11-111-0/+1
| | | | | | | | | | | | | This implements part of RFC-2217 It's based off a patch originally written by Sujal Patel at Isilon, and contributions from other Isilon employees. PR: 173728 Phabric: D995 Reviewed by: markj, markm MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
* MFV: Import atf-0.21.jmmv2014-11-013-3/+7
|
* This is the much-discussed major upgrade to the random(4) device, known to ↵markm2014-10-301-1/+1
| | | | | | | | | | | | | | | | | | | you all as /dev/random. This code has had an extensive rewrite and a good series of reviews, both by the author and other parties. This means a lot of code has been simplified. Pluggable structures for high-rate entropy generators are available, and it is most definitely not the case that /dev/random can be driven by only a hardware souce any more. This has been designed out of the device. Hardware sources are stirred into the CSPRNG (Yarrow, Fortuna) like any other entropy source. Pluggable modules may be written by third parties for additional sources. The harvesting structures and consequently the locking have been simplified. Entropy harvesting is done in a more general way (the documentation for this will follow). There is some GREAT entropy to be had in the UMA allocator, but it is disabled for now as messing with that is likely to annoy many people. The venerable (but effective) Yarrow algorithm, which is no longer supported by its authors now has an alternative, Fortuna. For now, Yarrow is retained as the default algorithm, but this may be changed using a kernel option. It is intended to make Fortuna the default algorithm for 11.0. Interested parties are encouraged to read ISBN 978-0-470-47424-2 "Cryptography Engineering" By Ferguson, Schneier and Kohno for Fortuna's gory details. Heck, read it anyway. Many thanks to Arthur Mesh who did early grunt work, and who got caught in the crossfire rather more than he deserved to. My thanks also to folks who helped me thresh this out on whiteboards and in the odd "Hallway track", or otherwise. My Nomex pants are on. Let the feedback commence! Reviewed by: trasz,des(partial),imp(partial?),rwatson(partial?) Approved by: so(des)
* Add an "empty" Makefile.pc98 because it doesn't need/want HYPERV. Itimp2014-10-161-0/+4
| | | | is not relevant to the hardware it runs on.
* HYPERV isn't available on all architectures, but just on by defaultimp2014-10-163-5/+12
| | | | | | | | for i386/amd64. Rather, it only works on i386/amd64 and should only be built there. Rather than change the default based on which architecutre, do things more directly by only building it on i386/amd64 and having it always on. This is how we handle other options that are relevant only for a few architectures.
* Always return pathname in dl_iterate_phdr's dlpi_name, as Linux doesemaste2014-10-091-2/+1
| | | | | | | | | | | | Linux LD_ITERATE_PHDR(3): The dlpi_name field is a null-terminated string giving the pathname from which the shared object was loaded. That functionality is much more useful than returning just the short name. Approved by: kan Sponsored by: The FreeBSD Foundation
* Remove MK_ARM_EABI, the armeb issues have been fixed. The code to supportandrew2014-10-011-1/+1
| | | | | | | | | | | | the oabi is still in the tree, but it is expected this will be removed as developers work on surrounding code. With this commit the ARM EABI is the only supported supported ABI by FreeBSD on ARMa 32-bit processors. X-MFC after: never Relnotes: yes Differential Revision: https://reviews.freebsd.org/D876
* Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft,delphij2014-09-132-0/+15
| | | | | | | | | | | | | | many thanks for their continued support of FreeBSD. While I'm there, also implement a new build knob, WITHOUT_HYPERV to disable building and installing of the HyperV utilities when necessary. The HyperV utilities are only built for i386 and amd64 targets. This is a stable/10 candidate for inclusion with 10.1-RELEASE. Submitted by: Wei Hu <weh microsoft com> MFC after: 1 week
* Document the whole settings needed to build a debug version of rtld.kib2014-08-291-0/+4
| | | | | Sponsored by: The FreeBSD Foundation MFC after: 3 days
* Optimize r270798, only do the second pass over non-plt relocationskib2014-08-294-3/+9
| | | | | | | when the first pass found IFUNCs. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
* IFUNC symbol type shall be processed for non-PLT relocations,kib2014-08-299-334/+311
| | | | | | | | | | | | | | | | | | | e.g. when a global variable is initialized with a pointer to ifunc. Add symbol type check and call resolver for STT_GNU_IFUNC symbol types when processing non-PLT relocations, but only after non-IFUNC relocations are done. The two-phase proceessing is required since resolvers may reference other symbols, which must be ready to use when resolver calls are done. Restructure reloc_non_plt() on x86 to call find_symdef() and handle IFUNC in single place. For non-x86 reloc_non_plt(), check for call for IFUNC relocation and do nothing, to avoid processing relocs twice. PR: 193048 Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
* Remove stray newline.kib2014-08-271-1/+1
|
* Fix "make checkdpadd" by "spoofing" DPADDngie2014-08-261-0/+1
| | | | | | Approved by: jmmv (mentor) Phabric: D631 PR: 192769
* Always check the limits of array index variables before using them.pfg2014-08-211-2/+2
| | | | | Obtained from: DragonFlyBSD MFC after: 1 week
* Revert r267233 for now. PIE support needs to be reworked.bdrewery2014-08-194-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | 1. 50+% of NO_PIE use is fixed by adding -fPIC to INTERNALLIB and other build-only utility libraries. 2. Another 40% is fixed by generating _pic.a variants of various libraries. 3. Some of the NO_PIE use is a bit absurd as it is disabling PIE (and ASLR) where it never would work anyhow, such as csu or loader. This suggests there may be better ways of adding support to the tree. Many of these cases can be fixed such that -fPIE will work but there is really no reason to have it in those cases. 4. Some of the uses are working around hacks done to some Makefiles that are really building libraries but have been using bsd.prog.mk because the code is cleaner. Had they been using bsd.lib.mk then NO_PIE would not have been needed. We likely do want to enable PIE by default (opt-out) for non-tree consumers (such as ports). For in-tree though we probably want to only enable PIE (opt-in) for common attack targets such as remote service daemons and setuid utilities. This is also a great performance compromise since ASLR is expected to reduce performance. As such it does not make sense to enable it in all utilities such as ls(1) that have little benefit to having it enabled. Reported by: kib
* Remove LOG_ODELAY because it does nothing.neel2014-08-172-2/+2
| | | | | Reviewed by: jilles CR: https://reviews.freebsd.org/D611
* Rework privatelib/internallibbapt2014-08-062-4/+2
| | | | | | | | | | | | | | Make sure everything linking to a privatelib and/or an internallib does it directly from the OBJDIR rather than DESTDIR. Add src.libnames.mk so bsd.libnames.mk is not polluted by libraries not existsing in final installation Introduce the LD* variable which is what ld(1) is expecting (via LDADD) to link to internal/privatelib Directly link to the .so in case of private library to avoid having to complexify LDFLAGS. Phabric: https://phabric.freebsd.org/D553 Reviewed by: imp, emaste
* Similar to r269506, fix LIBDIR to not duplicate TESTSDIRngie2014-08-051-2/+2
| | | | | | | Phabric: D536 Reviewed by: jmmv Approved by: jmmv (mentor) Sponsored by: EMC / Isilon Storage Division
* Remove unnecessary .PATH directivengie2014-08-051-2/+0
| | | | | | | | | | All of the sources for the tests are contained in the current working directory and the subdirectories Phabric: D537 Reviewed by: jmmv Approved by: jmmv (mentor) Sponsored by: EMC / Isilon Storage Division
* Fix BINDIR to not duplicate "${TESTSDIR}ngie2014-08-041-1/+1
| | | | | | | | | This should fix 'make release' with MK_TESTS != no Phabric: D525 (part of a larger patch) Reviewed by: jmmv Approved by: jmmv (co-mentor)
* Move a -L argument from LDADD to LDFLAGSngie2014-08-041-1/+3
| | | | | | | Phabric: D525 (part of a larger patch) Reviewed by: jmmv Approved by: jmmv (co-mentor)
OpenPOWER on IntegriCloud