Message Area
Casually read the BBS message area using an easy to use interface. Messages are categorized exactly like they are on the BBS. You may post new messages or reply to existing messages!

You are not logged in. Login here for full access privileges.

Previous Message | Next Message | Back to Linux operating system (OS), a U...  <--  <--- Return to Home Page
   Networked Database  Linux operating system (OS), a U...   [565 / 900] RSS
 From   To   Subject   Date/Time 
Message   Benny Pedersen    Little Mikey   2 Beware; for I am fearless, and therefore powerful.   August 4, 2018
 11:16 PM *  

                if ! do_run_test '#include <unistd.h>\n#include
<sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' ; then
                        eerror "Your old kernel is broken. You need to update
it to a newer"
                        eerror "version as syscall(<bignum>;) will break. See
bug 279260."
                        die "Old and broken kernel."
                fi
        fi

        # Users have had a chance to phase themselves, time to give em the boot
        if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build
 ]] ; then
                eerror "You still haven't deleted ${EROOT}/etc/locales.build."
                eerror "Do so now after making sure ${EROOT}/etc/locale.gen is
kosher."
                die "Lazy upgrader detected"
        fi

        if [[ ${CTARGET} == i386-* ]] ; then
                eerror "i386 CHOSTs are no longer supported."
                eerror "Chances are you don't actually want/need i386."
                eerror "Please read
https://www.gentoo.org/doc/en/change-chost.xm...
                die "Please fix your CHOST"
        fi

        if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag
-mno-tls-direct-seg-refs ; then
                ewarn "You are using Xen but don't have
-mno-tls-direct-seg-refs in your CFLAGS."
                ewarn "This will result in a 50% performance penalty when
running with a 32bit"
                ewarn "hypervisor, which is probably not what you want."
        fi

        use hardened && ! tc-enables-pie && \
                ewarn "PIE hardening not applied, as your compiler doesn't
default to PIE"

        # Check for sanity of /etc/nsswitch.conf
        if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then
                local entry
                for entry in passwd group shadow; do
                        if ! egrep -q "^[ \t]*${entry}:.*files"
"${EROOT}"/etc/nsswitch.conf; then
                                eerror "Your ${EROOT}/etc/nsswitch.conf is out
of date."
                                eerror "Please make sure you have 'files'
entries for"
                                eerror "'passwd:', 'group:' and 'shadow:'
databases."
                                eerror "For more details see:"
                                eerror " 
https://wiki.gentoo.org/wiki/Project:Toolchai...
                                die "nsswitch.conf has no 'files' provider in
'${entry}'."
                        fi
                done
        fi

        # ABI-specific checks follow here. Hey, we have a lot more specific
conditions that
        # we test for...
        if ! is_crosscompile ; then
                if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]]
 ; then
                        ebegin "Checking that IA32 emulation is enabled in the
running kernel"
                        echo 'int main(){return 0;}' >
"${T}/check-ia32-emulation.c"
                        local STAT
                        if "${CC-${CHOST}-gcc}" ${CFLAGS_x86}
"${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
                                "${T}/check-ia32-emulation.elf32"
                                STAT=$?
                        else
                                # Don't fail here to allow single->multi ABI
switch
                                # or recover from breakage like bug #646424
                                ewarn "Failed to compile the ABI test. Broken
host glibc?"
                                STAT=0
                        fi
                        rm -f "${T}/check-ia32-emulation.elf32"
                        eend $STAT
                        [[ $STAT -eq 0 ]]  die "CONFIG_IA32_EMULATION must be
 enabled in the kernel to compile a multilib glibc."
                fi

        fi

        # When we actually have to compile something...
        if ! just_headers ; then
                ebegin "Checking gcc for __thread support"
                if ! eend $(want__thread ; echo $?) ; then
                        echo
                        eerror "Could not find a gcc that supports the __thread
 directive!"
                        eerror "Please update your binutils/gcc and try again."
                        die "No __thread support in gcc!"
                fi

                if [[ ${CTARGET} == *-linux* ]] ; then
                        local run_kv build_kv want_kv

                        run_kv=$(g_get_running_KV)
                        build_kv=$(g_int_to_KV $(get_kheader_version))
                        want_kv=${MIN_KERN_VER}

                        if ! is_crosscompile && ! tc-is-cross-compiler ; then
                                # Building fails on an non-supporting kernel
                                ebegin "Checking running kernel version
(${run_kv} >= ${want_kv})"
                                if ! eend_KV ${run_kv} ${want_kv} ; then
                                        echo
                                        eerror "You need a kernel of at least
${want_kv}!"
                                        die "Kernel version too low!"
                                fi
                        fi

                        ebegin "Checking linux-headers version (${build_kv} >=
${want_kv})"
                        if ! eend_KV ${build_kv} ${want_kv} ; then
                                echo
                                eerror "You need linux-headers of at least
${want_kv}!"
                                die "linux-headers version too low!"
                        fi
                fi
        fi
}

#
# the phases
#

# pkg_pretend

pkg_pretend() {
        # All the checks...
        einfo "Checking general environment sanity."
        sanity_prechecks
}

# src_unpack

src_unpack() {
        # Consistency is not guaranteed between pkg_ and src_ ...
        sanity_prechecks

        use multilib && unpack
gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz

        setup_env

        if [[ -n ${EGIT_REPO_URI} ]] ; then
                git-r3_src_unpack
        else
                unpack ${P}.tar.xz
        fi

        cd "${S}"  die
        touch locale/C-translit.h  die #185476 #218003

        cd "${WORKDIR}"  die
        unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
}

src_prepare() {
        if ! use vanilla ; then
                elog "Applying Gentoo Glibc Patchset
${RELEASE_VER}-${PATCH_VER}"
                eapply "${WORKDIR}"/patches
                einfo "Done."
        fi

        default

        gnuconfig_update

        cd "${WORKDIR}"
        find . -name configure -exec touch {} +

        eprefixify extra/locale/locale-gen

        # Fix permissions on some of the scripts.
        chmod u+x "${S}"/scripts/*.sh

        cd "${S}"
}

glibc_do_configure() {
        # Glibc does not work with gold (for various reasons) #269274.
        tc-ld-disable-gold

        # CXX isnt handled by the multilib system, so if we dont unset here
        # we accumulate crap across abis
        unset CXX

        einfo "Configuring glibc for nptl"

        if use doc ; then
                export MAKEINFO=makeinfo
        else
                export MAKEINFO=/dev/null
        fi

        local v
        for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD
{AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do
                einfo " $(printf '%15s' ${v}:)   ${!v}"
        done

        # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug
#657760
        # To build .S (assembly) files with the same ABI-specific flags
        # upstream currently recommends adding CFLAGS to CC/CXX:
        #    https://sourceware.org/PR23273
        # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific
CFLAGS
        # and breaks multiarch support. See 659030#c3 for an example.
        # The glibc configure script doesn't properly use LDFLAGS all the time.
        export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}"
        einfo " $(printf '%15s' 'Manual CC:')   ${CC}"

        # Some of the tests are written in C++, so we need to force our multlib
 abis in, bug 623548
        export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}"
        einfo " $(printf '%15s' 'Manual CXX:')   ${CXX}"

        echo

        local myconf=()

        case ${CTARGET} in
                powerpc-*)
                        # Currently gcc on powerpc32 generates invalid code for
                        # __builtin_return_address(0) calls. Normally programs
                        # don't do that but malloc hooks in glibc do:
                        # https://gcc.gnu.org/PR81996
                        # https://bugs.gentoo.org/629054
                        myconf+=( --enable-stack-protector=no )
                        ;;
                *)
                        myconf+=( --enable-stack-protector=all )
                        ;;
        esac
        myconf+=( --enable-stackguard-randomization )

        # Keep a whitelist of targets supporing IFUNC. glibc's ./configure
        # is not robust enough to detect proper support:
        #    https://bugs.gentoo.org/641216
        #    https://sourceware.org/PR22634#c0
        case $(tc-arch ${CTARGET}) in
                # Keep whitelist of targets where autodetection mostly works.
                amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;;
                # Blacklist everywhere else
                *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
        esac

        # Enable Intel Control-flow Enforcement Technology on amd64 if
requested
        case ${CTARGET} in
                x86_64-*) myconf+=( $(use_enable cet) ) ;;
                *) ;;
        esac

        [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )

        myconf+=( --enable-kernel=${MIN_KERN_VER} )

        # Since SELinux support is only required for nscd, only enable it if:
        # 1. USE selinux
        # 2. only for the primary ABI on multilib systems
        # 3. Not a crosscompile
        if ! is_crosscompile && use selinux ; then
                if use multilib ; then
                        if is_final_abi ; then
                                myconf+=( --with-selinux )
                        else
                                myconf+=( --without-selinux )
                        fi
                else
                        myconf+=( --with-selinux )
                fi
        else
                myconf+=( --without-selinux )
        fi

        # Force a few tests where we always know the answer but
        # configure is incapable of finding it.
        if is_crosscompile ; then
                export \
                        libc_cv_c_cleanup=yes \
                        libc_cv_forced_unwind=yes
        fi

        myconf+=(
                --without-cvs
                --disable-werror
                --enable-bind-now
                --build=${CBUILD_OPT:-${CBUILD}}
                --host=${CTARGET_OPT:-${CTARGET}}
                $(use_enable profile)
                $(use_with gd)
                --with-headers=$(alt_build_headers)
                --prefix="${EPREFIX}/usr"
                --sysconfdir="${EPREFIX}/etc"
                --localstatedir="${EPREFIX}/var"
                --libdir='$(prefix)'/$(get_libdir)
                --mandir='$(prefix)'/share/man
                --infodir='$(prefix)'/share/info
                --libexecdir='$(libdir)'/misc/glibc
                --with-bugurl=https://bugs.gentoo.org/
                --with-pkgversion="$(glibc_banner)"
                $(use_multiarch  echo --disable-multi-arch)
                $(use_enable systemtap)
                $(use_enable nscd)
                ${EXTRA_ECONF}
        )

        # We rely on sys-libs/timezone-data for timezone tools normally.
        myconf+=( $(use_enable vanilla timezone-tools) )

        # These libs don't have configure flags.
        ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit  echo no)
        ac_cv_lib_cap_cap_init=$(usex caps  echo no)

        # There is no configure option for this and we need to export it
        # since the glibc build will re-run configure on itself
        export libc_cv_rootsbindir="${EPREFIX}/sbin"
        export libc_cv_slibdir="${EPREFIX}/$(get_libdir)"

        # We take care of patching our binutils to use both hash styles,
        # and many people like to force gnu hash style only, so disable
        # this overriding check.  #347761
        export libc_cv_hashstyle=no

        local builddir=$(builddir nptl)
        mkdir -p "${builddir}"
        cd "${builddir}"
        set -- "${S}"/configure "${myconf[@]}"
        echo "$@"
        "$@"  die "failed to configure glibc"

        # ia64 static cross-compilers are a pita in so much that they
        # can't produce static ELFs (as the libgcc.a is broken).  so
        # disable building of the programs for those targets if it
        # doesn't work.
        # XXX: We could turn this into a compiler test, but ia64 is
        # the only one that matters, so this should be fine for now.
        if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then
                sed -i '1i+link-static = touch $@' config.make
        fi

        # If we're trying to migrate between ABI sets, we need
        # to lie and use a local copy of gcc.  Like if the system
        # is built with MULTILIB_ABIS="amd64 x86" but we want to
        # add x32 to it, gcc/glibc don't yet support x32.
        #
        if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then
                echo 'main(){}' > "${T}"/test.c
                if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c
-Wl,-emain -lgcc 2>/dev/null ; then
                        sed -i -e '/^CC = /s:$:
-B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:"
config.make  die
                fi
        fi
}

glibc_headers_configure() {
        export ABI=default

        local builddir=$(builddir "headers";)
        mkdir -p "${builddir}"
        cd "${builddir}"

        # if we don't have a compiler yet, we can't really test it now ...
        # hopefully they don't affect header generation, so let's hope for
        # the best here ...
        local v vars=(
                ac_cv_header_cpuid_h=yes
               
libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tl
s=yes
                libc_cv_asm_cfi_directives=yes
                libc_cv_broken_visibility_attribute=no
                libc_cv_c_cleanup=yes
                libc_cv_compiler_powerpc64le_binary128_ok=yes
                libc_cv_forced_unwind=yes
                libc_cv_gcc___thread=yes
                libc_cv_mlong_double_128=yes
                libc_cv_mlong_double_128ibm=yes
                libc_cv_ppc_machine=yes
                libc_cv_ppc_rel16=yes
                libc_cv_predef_fortify_source=no
                libc_cv_target_power8_ok=yes
                libc_cv_visibility_attribute=yes
                libc_cv_z_combreloc=yes
                libc_cv_z_execstack=yes
                libc_cv_z_initfirst=yes
                libc_cv_z_nodelete=yes
                libc_cv_z_nodlopen=yes
                libc_cv_z_relro=yes
                libc_mips_abi=${ABI}
                libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo
soft  echo hard)
                # These libs don't have configure flags.
                ac_cv_lib_audit_audit_log_user_avc_message=no
                ac_cv_lib_cap_cap_init=no
        )

        einfo "Forcing cached settings:"
        for v in "${vars[@]}" ; do
                einfo " ${v}"
                export ${v}
        done

        local headers_only_arch_CPPFLAGS=()

        # Blow away some random CC settings that screw things up. #550192
        if [[ -d ${S}/sysdeps/mips ]]; then
                pushd "${S}"/sysdeps/mips >/dev/null
                sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile
mips64/n32/Makefile  die
                sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:'
mips64/n64/Makefile  die

                # Force the mips ABI to the default.  This is OK because the
set of
                # installed headers in this phase is the same between the 3
ABIs.
                # If this ever changes, this hack will break, but that's
unlikely
                # as glibc discourages that behavior.
                # https://crbug.com/647033
                sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure  die

                popd >/dev/null
        fi

        case ${CTARGET} in
        riscv*)
                # RISC-V interrogates the compiler to determine which target to
                # build.  If building the headers then we don't strictly need a
                # RISC-V compiler, so the built-in definitions that are
provided
                # along with all RISC-V compiler might not exist.  This causes
                # glibc's RISC-V preconfigure script to blow up.  Since we're
just
                # building the headers any value will actually work here, so
just
                # pick the standard one (rv64g/lp64d) to make the build scripts
                # happy for now -- the headers are all the same anyway so it
                # doesn't matter.
                headers_only_arch_CPPFLAGS+=(
                        -D__riscv_xlen=64
                        -D__riscv_flen=64
                        -D__riscv_float_abi_double=1
                        -D__riscv_atomic=1
                ) ;;
        esac

        local myconf=()
        myconf+=(
                --disable-sanity-checks
                --enable-hacker-mode
                --without-cvs
                --disable-werror
                --enable-bind-now
                --build=${CBUILD_OPT:-${CBUILD}}
                --host=${CTARGET_OPT:-${CTARGET}}
                --with-headers=$(alt_build_headers)
                --prefix="${EPREFIX}/usr"
                ${EXTRA_ECONF}
        )

        # Nothing is compiled here which would affect the headers for the
target.
        # So forcing CC/CFLAGS is sane.
        local headers_only_CC=$(tc-getBUILD_CC)
        local headers_only_CFLAGS="-O1 -pipe"
        local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE
${headers_only_arch_CPPFLAGS[*]}"
        local headers_only_LDFLAGS=""
        set -- "${S}"/configure "${myconf[@]}"
        echo \
                "CC=${headers_only_CC}" \
                "CFLAGS=${headers_only_CFLAGS}" \
                "CPPFLAGS=${headers_only_CPPFLAGS}" \
                "LDFLAGS=${headers_only_LDFLAGS}" \
                "$@"
        CC=${headers_only_CC} \
        CFLAGS=${headers_only_CFLAGS} \
        CPPFLAGS=${headers_only_CPPFLAGS} \
        LDFLAGS="" \
        "$@"  die "failed to configure glibc"
}

do_src_configure() {
        if just_headers ; then
                glibc_headers_configure
        else
                glibc_do_configure nptl
        fi
}

src_configure() {
        foreach_abi do_src_configure
}

do_src_compile() {
        emake -C "$(builddir nptl)"  die "make nptl for ${ABI} failed"
}

src_compile() {
        if just_headers ; then
                return
        fi

        foreach_abi do_src_compile
}

glibc_src_test() {
        cd "$(builddir nptl)"
        emake check
}

do_src_test() {
        local ret=0

        glibc_src_test
        : $(( ret |= $? ))

        return ${ret}
}

src_test() {
        if just_headers ; then
                return
        fi

        # Give tests more time to complete.
        export TIMEOUTFACTOR=5

        foreach_abi do_src_test  die "tests failed"
}

run_locale_gen() {
        # if the host locales.gen contains no entries, we'll install everything
        local root="$1"
        local locale_list="${root}/etc/locale.gen"
        if [[ -z $(locale-gen --list --config "${locale_list}";) ]] ; then
                ewarn "Generating all locales; edit /etc/locale.gen to save
time/space"
                locale_list="${root}/usr/share/i18n/SUPPORTED"
        fi

        locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \
                --destdir "${root}"
}

glibc_do_src_install() {
        local builddir=$(builddir nptl)
        cd "${builddir}"

        emake install_root="${D}$(alt_prefix)" install  die

        # This version (2.26) provides some compatibility libraries for the
NIS/NIS+ support
        # which come without headers etc. Only needed for binary packages since
 the
        # external net-libs/libnsl has increased soversion. Keep only versioned
 libraries.
        find "${D}" -name "libnsl.a" -delete
        find "${D}" -name "libnsl.so" -delete

        # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we
need
        # to infer upstream version:
        # '#define VERSION "2.26.90"' -> '2.26.90'
        local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p'
"${S}"/version.h)

        if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
                # Move versioned .a file out of libdir to evade portage QA
checks
                # instead of using gen_usr_ldscript(). We fix ldscript as:
                # "GROUP ( /usr/lib64/libm-<pv>.a ..." -> "GROUP (
/usr/lib64/glibc-<pv>/libm-<pv>.a ..."
                sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@"
"${ED}"$(alt_usrlibdir)/libm.a  die
                dodir $(alt_usrlibdir)/${P}
                mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a
"${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a  die
        fi

        # We'll take care of the cache ourselves
        rm -f "${ED}"/etc/ld.so.cache

        # Everything past this point just needs to be done once ...
        is_final_abi  return 0

        # Make sure the non-native interp can be found on multilib systems even
        # if the main library set isn't installed into the right place.  Maybe
        # we should query the active gcc for info instead of hardcoding it ?
        local i ldso_abi ldso_name
        local ldso_abi_list=(
                # x86
                amd64   /lib64/ld-linux-x86-64.so.2
                x32     /libx32/ld-linux-x32.so.2
                x86     /lib/ld-linux.so.2
                # mips
                o32     /lib/ld.so.1
                n32     /lib32/ld.so.1
                n64     /lib64/ld.so.1
                # powerpc
                ppc     /lib/ld.so.1
                ppc64   /lib64/ld64.so.1
                # s390
                s390    /lib/ld.so.1
                s390x   /lib/ld64.so.1
                # sparc
                sparc32 /lib/ld-linux.so.2
                sparc64 /lib64/ld-linux.so.2
        )
        case $(tc-endian) in
        little)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64.so.1
                )
                ;;
        big)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64_be.so.1
                )
                ;;
        esac
        if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]]
; then
                dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
        fi
        for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do
                ldso_abi=${ldso_abi_list}
                has ${ldso_abi} $(get_install_abis)  continue

                ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
                if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ;
then
                        dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/}
 ${ldso_name}
                fi
        done

        # With devpts under Linux mounted properly, we do not need the pt_chown
        # binary to be setuid.  This is because the default owners/perms will
be
        # exactly what we want.
        if ! use suid ; then
                find "${ED}" -name pt_chown -exec chmod -s {} +
        fi

        #################################################################
        # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
--- Msged/LNX 6.1.2 (Linux/4.17.12-gentoo (x86_64))
 * Origin: I will always keep a PC running CPM 3.0 (2:230/0)
  Show ANSI Codes | Hide BBCodes | Show Color Codes | Hide Encoding | Hide HTML Tags | Show Routing
Previous Message | Next Message | Back to Linux operating system (OS), a U...  <--  <--- Return to Home Page

VADV-PHP
Execution Time: 0.1036 seconds

If you experience any problems with this website or need help, contact the webmaster.
VADV-PHP Copyright © 2002-2024 Steve Winn, Aspect Technologies. All Rights Reserved.
Virtual Advanced Copyright © 1995-1997 Roland De Graaf.
v2.0.140505

Warning: Unknown: open(c:\Sessions\sess_85s09mt3oh1sq4gm8rbt6ub2k1, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (c:\Sessions) in Unknown on line 0 PHP Warning: session_start(): open(c:\Sessions\sess_85s09mt3oh1sq4gm8rbt6ub2k1, O_RDWR) failed: No such file or directory (2) in D:\wc5\http\public\VADV\include\common.inc.php on line 45 PHP Warning: Unknown: open(c:\Sessions\sess_85s09mt3oh1sq4gm8rbt6ub2k1, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (c:\Sessions) in Unknown on line 0